2011-01-30 10 views
15
login.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(username_text.getText().toString() == "admin" && 
        pass_text.getText().toString() == "password"){ 

       startActivityForResult(i, ACTIVITY_CREATE); 

      }else{ 
       Toast.makeText(gps_gui.this, "Your username or password is not correct! Please, insert again", 
         Toast.LENGTH_SHORT).show(); 
       clearEditText(); 
      } 
     } 

    }); 

나는 그것을 검사하려고하는데, 나는 조건으로 가지 않는다는 것을 알았다.EditText에서 문자열 가져 오기

+1

이전 질문에 대한 정답을 수락해야합니다. 답변 옆에있는 체크 표시를 클릭하여 승인 된 것으로 표시 할 수 있습니다. – kcoppock

+0

나는이 정확한 테스트를 거의했다. 심지어 "admin"과 "password"를 값으로 사용한다. 좋은! :)이 질문에 감사드립니다. – aikeru

답변

29

java를 사용하는 경우 String.equals (String) 메소드를 사용하여 String을 비교해야합니다. == 비교는 String 객체 값이 같은지 여부를 확인하고 의심 할 여지없이 비교합니다. 당신에게 예를 변경하려고 :

"admin".equals(username_text.getText().toString()) &&"password".equals(pass_text.getText().toString()) 

그것도 확인되는 경우, 먼저 값의 문자열 값을 정적 스트링을 넣어 스마트는 null입니다.

+0

감사합니다. 대소 문자를 구별합니까? – Yoo

+1

대/소문자를 구분합니다. @ msumaithri 언급했듯이, 당신은 대안으로 equalsIgnoreCase를 사용할 수 있습니다 (비록 내가 암호와 사용자 이름을 위해하지 않는 것이 좋습니다) –

+0

당신이 관리자의 ansi 값과 ansi 값을 암호로 추가하면 나처럼 순진하게 추가합니다. 다른 것 ... – solti

3

String 클래스의 equals() 메서드를 사용하여 String을 비교합니다. 다음 링크를 통해 더 자세한 정보를 얻을 수 있습니다.

About equals(Object yourObj) method (CASE sensitive)

당신이 대소 문자를 구분하지되도록하려면 equalsIgnoreCase (문자열 yourStringObject는) 사용할 수 있습니다!

관련 문제