2011-04-20 2 views
1

나는 두 개의 스피너가 있습니다.spinner1의 xy 항목이 올바르게 선택되지 않은 경우 spinner2 표시

첫 번째 항목에서 "Diesel"항목을 선택한 경우 두 번째 항목을 표시하려고합니다.

sKraftstoffArt.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      if(sKraftstoffArt.getSelectedItem().toString() == "Diesel"){ 
       sPartikelfilterArt.setVisibility(sPartikelfilterArt.VISIBLE); 
      } 
     } 

     public void onNothingSelected(AdapterView<?> adapterView) { 
      return; 
     } 
    }); 

이 코드는 onCreate 메소드에서 구현했습니다. 런타임에 항목을 선택하면 선택한 항목 텍스트가 표시되지 않습니다 ... 활동이 만들어지고 기본값이 선택되면 작동합니다 ....

그 밖의 구현해야하는 부분 ?

감사합니다, 플로트

답변

1

당신의 sKraftstoffArt 개체가 작동하지 않습니다, 그것은에 대한 검사가 익명의 클래스 내에서 항목 텍스트를 선택되어 최종 아니다 않는 한.

은 을 할당 한 ListView 인스턴스입니다.
view 매개 변수는 ListView 안에있는 실제 항목 (렌더러)입니다. 이 항목은 어댑터의 getView(int position, View convertView, ViewGroup parent) 방법으로 제공됩니다.

또한 equals 메서드를 String으로 사용하여 두 문자열 값이 같은지 확인해야합니다.

그래서이 작동하지 않습니다

if(sKraftstoffArt.getSelectedItem().toString() == "Diesel") 

사용이

if (adapterView.getSelectedItem().toString().equals("Diesel")) 

을 insetad 당신은 또한 sPartikelfilterArt 스피너를 숨기고,이 ifelse 절을 추가 할 수 있습니다 때 선택한 항목에서 이전 회 전자는 "디젤"이 아닙니다.

새 어댑터를이 목록에 할당 할 때마다 (아마도 그렇게하지 않을 수도 있지만 ... 다만이를 언급합니다 ...) AdapterView.OnItemClickListener을 다시 추가해야합니다.

+0

감사합니다. .equals를 사용하면 잘 작동합니다. – float

+0

버튼을 클릭하여 값을 알고 싶을 때 선택한 항목을 가져 오는 방법을 알려주시겠습니까? 이 경우에는 adapterView가 없습니다. – float

+1

아 나는 선택된 값을 별도의 변수에 저장한다 :-) – float

관련 문제