2014-10-25 4 views
-3
s = ans.getText().toString(); 

jum.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){ 
     String selected = jum.getItemAtPosition(arg2).toString(); 
     if(s.equals(selected)) 
     { 
      //jum.setItemChecked(arg2, true); 
      ans.setText("correct"); 
     } 
     else 
     { 
      ans.setText("incorrect"); 
     } 

    } 
}); 

여기은 EditText이며 jum은 목록보기입니다. edittext에서 사용자가 입력 한 문자열과 그가 클릭하는 listview의 문자열을 비교하려고합니다.문자열이 같을 때 문자열 비교가 false를 반환하는 이유를 이해할 수 없습니다

+3

* "왜 문자열 비교가 문자열이 같을 때라도 false를 반환하는지 이해할 수 없습니다."* It * is *. 그래서 당신이 스스로에게 물어야 할 질문은 : 즉시 볼 수없는 방식으로 문자열이 어떻게 다른가요? ['select'는 깨지지 않았습니다.] (http://pragmatictips.com/26) –

+4

's'와'selected' 모두를 로깅 해보십시오. – Neo

+0

문자열에는 언젠가는 볼 수없는 문자가 들어있을 수도 있습니다. 그것은 당신을위한 경우는 아니지만, 종종 "test"를 "test \ n"또는 이와 비슷한 것으로 비교하는 경우가 있습니다. 이 경우를 조심하십시오! 예를 들어, – Dyrborg

답변

-1
jum.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      String selected = jum.getItemAtPosition(arg2).toString(); 
      s= ans.getText().toString(); 

      if(s.equals(selected)) 
      { 
       //jum.setItemChecked(arg2, true); 
       ans.setText("correct"); 
      } 
      else 
      { 
       ans.setText("incorrect"); 
      } 

     } 
    }); 
+0

죄송합니다 .. 답변을 업데이트했습니다. –