2013-08-01 2 views
-4

저는 레지스터 기능을 개발 중입니다. 등록 전에 몇 가지 유효성 검사가 필요합니다. 그래서 내가 모든 editText null인지 확인하면 작동하지 않습니다. 나는 이유를 이해할 수 없었다. 여기에 코드editext getText가 아무 것도 반환하지 않는 이유는 무엇입니까?

public class RegisterActivity extends Activity implements View.OnClickListener { 
    private AlertDialogManager alert = new AlertDialogManager(); 
    private EditText mFullName; 
    private EditText mEmail; 
    private EditText mPassword; 
    private EditText mPasswordAgain; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.register); 

     init(); 
    } 

    private void init() { 

     findViewById(R.id.registerButton).setOnClickListener(this); 
     mFullName = (EditText)findViewById(R.id.registerFullName); 
     mEmail = (EditText)findViewById(R.id.registerEmail); 
     mPassword = (EditText)findViewById(R.id.registerPassword); 
     mPasswordAgain = (EditText)findViewById(R.id.registerPasswordRetype); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.registerButton: 

       System.out.println("fullname="+mFullName.getText()); 
       System.out.println("email="+mEmail.getText()); 
       System.out.println("emailString="+mEmail.getText().toString()); 

       if (mFullName.getText().toString().equals("") && mEmail.getText().toString().equals("") && mPassword.getText().toString().equals("") && mPasswordAgain.getText().toString().equals("")){ 
        if (Utils.isValidEmail(mEmail.getText().toString())){ 
         if (Utils.checkPassWordAndConfirmPassword(mPassword.getText().toString(), mPasswordAgain.getText().toString())){ 
          register(); 
         } else { 
          alert.showAlertDialog(RegisterActivity.this, "Error", 
            "Password doesn't match", false); 
         } 
        } else { 
         alert.showAlertDialog(RegisterActivity.this, "Error", 
           "Wrong email", false); 
        } 
       } else { 
        alert.showAlertDialog(RegisterActivity.this, "Error", 
          "All fields are required", false); 
       } 
       break; 
     } 
    } 

} 당신은 버튼으로 클릭하면에서 System.out.println이 볼

. 여기에도 그걸 넣었지 만

08-01 11:34:46.830: INFO/System.out(10434): fullname= 
08-01 11:34:46.830: INFO/System.out(10434): email= 
08-01 11:34:46.830: INFO/System.out(10434): emailString= 

Whe getText는 null이 아닌 경우 null을 출력하지 않습니까? 나는 결론에 도달

+1

gettext(). tostring()을 사용해야합니다. –

+0

시도하지 않음 작동하지 않음 – bauer9664

+0

왜 null을 인쇄해야합니까 ?? do() getText(). toString()! = "") -> edittext의 빈 텍스트 인 경우 getText(). toString.length()> = 1 또는 if 당신은 null을 기대하는 첫 번째 사람입니다 !! – Charan

답변

-2

다음 @Pankaj 쿠마의 대답은 ...

if (TextUtils.isEmpty(mFullName.getText()) && 
       TextUtils.isEmpty(mEmail.getText()) && 
       TextUtils.isEmpty(mPassword.getText()) && 
       TextUtils.isEmpty(mPasswordAgain.getText())) { 

alert.showAlertDialog(RegisterActivity.this, "Error", 
          "All fields are required", false); 
} else { 
//do another validation 
} 

나는 그것이 작동 확신합니다.

+0

oo 감사합니다. – bauer9664

+0

gud work! 하지만 여전히 내 대답에 문제가 무엇인지 찾고 있어요 : : D 조 –

0

EditText 필드가 비어 있는지 확인하는 방법입니다.

public String checkInput(){ 
    email= username.getText().toString(); 
    if(email.equals("")){ 
     System.out.println("No email"); 
    } 
} 

잘 작동합니다.

if (mFullName.getText().toString().equals("") && mEmail.getText().toString().equals("") && mPassword.getText().toString().equals("") && mPasswordAgain.getText().toString().equals("")){ 

이 코드 true의 경우 모든 텍스트 필드가 비어 있었고, 사용자가 여기에 대한 "All fields are required" 경고 대화를 표시해야 함을 의미 :

0

실제로 원래의 코드에서 논리적 인 오류가 있습니다.

현재 코드에서 코드의 else 부분에 경고가 표시되었습니다. 논리적으로 잘못된 것입니다.

관련 문제