2014-11-22 9 views
0

안녕하세요 저는 Android 앱을 처음 사용했습니다. 로그인 페이지가 있는데 내 응답과 함께 잘 작동하지만 내 사용자 이름과 비밀번호 edittext가 비어 있고 사용자가 표시해야하는 로그인 버튼을 클릭하면 다음과 같은 내용을 추가하고 싶습니다. 메시지를 비동기 작업 시작 대신 시작하십시오.asynctask를 실행하기 전에 클라이언트 측 유효성 검사를 추가하는 방법은 무엇입니까?

공용 클래스 LoginPage이 활동 OnClickListener를 구현 확장 {

private Button btn; 
private EditText user; 
private EditText pass; 


// Alert Dialog Manager 
    AlertDialogManager alert = new AlertDialogManager(); 

    // Session Manager Class 
    SessionManager session; 

// Progress Dialog 
private ProgressDialog pDialog; 
//JSON parser class 
JSONParser jsonParser = new JSONParser(); 
private Button btn1; 
private String userid; 

private static final String LOGIN_URL = "xxxxx"; 


private static final String TAG_SUCCESS = "status"; 
private static final String TAG_LOGIN = "login"; 
private static String TAG_USERID="user_login_id"; 
private static final String TAG_SESSION="session"; 
String session_id=""; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login_page); 

    // Session Manager 
    session = new SessionManager(getApplicationContext()); 

    user=(EditText)findViewById(R.id.loginmailid); 
    pass=(EditText)findViewById(R.id.loginpwd); 

    Toast.makeText(getApplicationContext(), "User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG).show(); 

    btn=(Button)findViewById(R.id.login); 
    btn1=(Button)findViewById(R.id.btnreg); 
    btn.setOnClickListener(this); 



} 
@Override 
public void onClick(View v) { 

    switch (v.getId()) { 
    case R.id.login: 
     if(user.equals(null) || pass.equals(null)) 
     { 
      Toast.makeText(getApplicationContext(), "Enter Email and Password", Toast.LENGTH_SHORT).show(); 
     } 
     else 
     { 
     new AttemptLogin().execute(); 
     System.out.println("<<<<<<<<<<<<<<<<<<<<< Session ID : " + session_id); 
     session.createLoginSession(session_id); 
     System.out.println(session); 
     break; 
     } 

    case R.id.btnreg: 
     Intent i = new Intent(this, RegistrationForm.class); 
     startActivity(i); 
     break; 

    default: 
      break; 
    } 

} 

클래스 AttemptLogin은 AsyncTask를 {

boolean failure = false; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(LoginPage.this); 
     pDialog.setMessage("Login.."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 

    @SuppressWarnings("unused") 
    @Override 
    protected String doInBackground(String...args) { 
     //Check for success tag 
     //int success; 
     Looper.prepare(); 
     String username = user.getText().toString(); 
     String password = pass.getText().toString(); 
     try { 
      //Building Parameters 


      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("email", username)); 
      params.add(new BasicNameValuePair("password", password)); 
      params.add(new BasicNameValuePair("version", "apps")); 

      Log.d("request!", "starting"); 
      // getting product details by making HTTP request 
      JSONObject json = jsonParser.makeHttpRequest (
       LOGIN_URL, "POST", params); 

      //check your log for json response 
      Log.d("Login attempt", json.toString()); 

      JSONObject jobj = new JSONObject(json.toString()); 
      final String msg = jobj.getString("msg"); 
      session_id = jobj.getString("user_login_id"); 
      System.out.println("Session ID : " + session_id); 
      System.out.println("MSG : " + msg); 

      runOnUiThread(new Runnable() 
      { 
       @Override 
       public void run() 
       { 
        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show(); 
       } 
      }); 
      return json.getString(TAG_SUCCESS); 


      //JSONArray arr = json.getJSONArray("login"); 

      //System.out.println(arr.toString()); 
      //JSONObject arr1 = new JSONObject(json); 
      //String ss=arr1.getString("status"); 
      //System.out.println(ss); 
      //System.out.println(arr1.getString("status")); 
      //String date = jObj.getString("status"); 



     }catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    // After completing background task Dismiss the progress dialog 

    protected void onPostExecute(String file_url) { 
     //dismiss the dialog once product deleted 


     pDialog.dismiss(); 
     if(file_url.equals("success")) { 

       session.createLoginSession(session_id); 
       // Log.d("Login Successful!", json.toString()); 
       Intent i = new Intent(LoginPage.this, MainActivity.class); 
       i.putExtra("id", session_id); 
       System.out.println("Session Id : >>>>>>>>>>>>>>>>" + session_id); 
       startActivity(i); 

      }else{ 
       //Toast.makeText(getApplicationContext(), "Failed", Toast.LENGTH_LONG).show(); 
      } 
}} 

}

답변

0

이 같은 시도

if(user.getText().toString().trim().length() > 0 && pass.getText().toString().trim().length() > 0) 
     { 
     new AttemptLogin().execute(); 
     System.out.println("<<<<<<<<<<<<<<<<<<<<< Session ID : " + session_id); 
     session.createLoginSession(session_id); 
     System.out.println(session); 
     break; 
     } 
     else 
     { 
     Toast.makeText(getApplicationContext(), "Enter Email and Password", Toast.LENGTH_SHORT).show(); 
     } 
+0

왜이 질문을지지해야합니까? 그리고 단일 문자 사용자 이름과 암호는 괜찮습니까? – greenapps

0

시도를 확장 전 이쪽으로 ...

case R.id.login: 
     if(user.getText().toString().trim().length()==0 || pass.getText().toString().trim().length()==0) 
     { 
      Toast.makeText(getApplicationContext(), "Enter Email and Password", Toast.LENGTH_SHORT).show(); 
     } 
     else 
     { 
     new AttemptLogin().execute(); 
     System.out.println("<<<<<<<<<<<<<<<<<<<<< Session ID : " + session_id); 
     session.createLoginSession(session_id); 
     System.out.println(session); 
     break; 
     } 
관련 문제