2012-09-03 3 views
2

onCreate 메서드 내에서 spinnerlistview이 포함되어 있습니다. 클릭 이벤트에 대한 목록 항목에 toast msg를 실행하려고하지만 ListView 항목에 onClick 수신기를 설정할 수 없습니다. 맞춤 어댑터를 사용하고 있지 않습니다. 나는 간단한 어댑터의 동일한 유형이 스피너와리스트 뷰 모두에 사용된다고 생각한다. 따라서 컴파일러는 좌절감을 낳는다.Spinner 내부의 ListView : 이벤트 감지를위한 어댑터 충돌

유형 새로운 AdapterView.OnItemClickListener() {}는 상속 추상 메소드 AdapterView.OnItemClickListener.onItemClick (어댑터 뷰 AdapterView,보기, INT를 구현해야

나는 "lv.setOnItemClickListener(new AdapterView.OnItemClickListener 얻어 오류 "에 초점을 유지

어떻게 간단한 어댑터를 사용하여 유지 목록보기 항목에서 이벤트를 클릭하여 설정을 관리 할 수), 오래? 은 어떻게 든 목록보기 어댑터를 "이름 바꾸기"나 어떻게 할까 계속 진행하면 ..?

의사 코드

// ... 
import android.widget.AdapterView; 
/* manually added */ 
import android.widget.AdapterView.OnItemClickListener; 

public class MyActivity extends Activity { 

onCreate(Bundle savedInstanceState){ 

// ... some code 
     // Set Spinner listener 
     mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> spinner, View v, int position, long id) { 

// ... some code 


        lv.setOnItemClickListener(new AdapterView.OnItemClickListener()) { 
         public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 
           // When clicked, show a toast with the TextView text 
           Toast.makeText(getApplicationContext(), "some msg" , Toast.LENGTH_SHORT).show(); 
          } 
         }); 

} 

} 
+1

"나는 onCreate 메서드 내에서 스피너에 목록 뷰를 임베드했습니다."- 작동하면 기절 할 것입니다. – CommonsWare

+0

잘 그것은 매력 같이 명백하게 작동한다, listview 자료를 위해 해시의 명부를 사용하고 requirying myAdapter.notifyDataSetChanged(); 하지만 나는 목록보기 항목에 토스트를 발사하기 위해 고심하고있다. – hornetbzz

+1

Spinner 자체는 어댑터에 따라 다르며 팝업이 보여주는 것은 ListView와 크게 다르지 않습니다. 그렇다면 왜 스피너 팝업 안에 목록보기를 삽입하고 있습니까? 여러 개의 'ListViews'가 아닌 여러 개의 어댑터가 필요합니다. 또한 스피너 팝업에서 뷰의 개별 이벤트를 캡처하려면 어댑터의'getView()'메소드 내에 클릭 이벤트 핸들러를 설정하십시오. –

답변

0

그래서 나는 회와 같은 활동 목록 볼 수 있습니다. 회 전자 선택에 따라 목록보기를 업데이트합니다. 또한 버튼 이벤트와 같은 다른 이벤트에서 동일한 listview를 업데이트합니다. 코드 원칙은 질문에 설명 된대로입니다.

이 방법이 완벽하게 작동하는지 확인하고 spinner/ListView 상호 작용과 ntg하지만 목록을 피드하기 위해 데이터를 가져 오는 방식으로 문제를 해결했습니다.

약간의 결과를 설명하기 위해 내 레이아웃은 this과 비슷하지만 스피너에 추가 된 버튼을 사용하여 모두 목록보기 결과를 이끌어 냈습니다.