2012-04-27 3 views
2

내 웹 사이트에서 가져온 값 (이름)을 표시하는 목록보기가 있으며 onItemClickListener를 사용하여 웹보기에서 해당 이름에 해당하는 URL 링크를로드합니다. 하지만 if 문을 추가하면 읽지 않습니다. 누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까? (캄 비오 = noteId.Medio.toString();) 여기서 안드로이드가 onItemClickListener 내에서 작동하지 않는 경우

코드

private AdapterView.OnItemClickListener onPeriodicosListClick = new AdapterView.OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
      long id) { 
     cambio=""; 
     pUrl=""; 
     noteId = arrayOfWebData.get(position); 
     cambio = noteId.Medio.toString(); 
     PeriodicosListLayout.setVisibility(View.GONE); 
     webLayout.setVisibility(View.VISIBLE);  
     pUrl = noteId.website.toString(); 
     wvp.loadUrl(pUrl); 

     if (cambio == "Periodico"){ 
      Toast.makeText(getApplicationContext(), 
        cambio, 
        Toast.LENGTH_LONG).show(); 
     } 
     if (cambio == "Tv"){ 
      Toast.makeText(getApplicationContext(), 
        cambio, 
        Toast.LENGTH_LONG).show(); 
     } 

    } 
}; 

는 IS 만 페리오, 라디오, TV (일 수 I는 그 중 어느 것으로 그것의 값을 설정 한대로 3 단어 만) 그래서 내가 원한 것은 그것이 무엇인지 말해주는 토스트입니다!

답변

3

if(cambio == "Periodico") 

하지만

if(cambio.equals("Periodico")) 
+0

고맙습니다! – zvzej

2

확실하지, 수 있지만, 캄 비오는 String 객체, 문

if(cambio.equals("Periodico") { 
... 
+0

그런 쉬운 해결책! 고마워요! – zvzej

0

을해야하는 경우가 당신이 시도 했 인 경우 사용하지 않아야 스위치 문 대신에? 또한 캄비 오를 logCat에 출력하면 무엇을 얻게됩니까?

Log.d(TAG, "cambio: " + cambio); 

마지막으로 한 가지. 당신의 활동에 List를 연결하기 위해 당신은 무엇을 사용하고 있습니까? simpleAdapter, baseAdapter, ..?

+0

아니요, switch 문을 사용하지 않았습니다.이 경우 구현하는 방법을 알지 못하기 때문입니다. ArrayAdapter를 사용하고 있습니다. – zvzej

1

== 연산자는 두 객체가 메모리의 동일한 공간 (문자열의 내용이 아닌)을 참조하는지 확인합니다. 문자열은 == 연산자가 내용 검사를하지 않고 참조 검사를 수행한다는 것을 의미하는 객체입니다. 문자열의 내용을 비교하는 인스턴스 compareTo(String anotherString) 또는 equals(Object) 방법을 사용은 즉 : 또한 경우 문제가되지 않는 경우 compareToIgnoreCase(String string)equalsIgnoreCase(Object) 변형이

if (cambio.compareTo("Periodico") == 0) { /* match */ } 
if (cambio.compareTo("Tv") == 0){ /* match */ } 

.

관련 문제