2013-08-24 2 views
1

두 개의 사용자 지정 ListView가 각각 고유 한 어댑터가 있지만 같은 클래스입니다. 그래서 각각은 활동에 대한 콜백 인터페이스를 가지고 있습니다.동일한 어댑터 클래스와 Activity에 대한 동일한 CallBack 인터페이스를 사용하는 다중 목록보기

Activity가 콜백을 실행중인 ListView를 구별 할 수있는 방법에 어려움을 겪고 있습니다. 리스너는 선택한 값을 Activity로 보냅니다. 그러나 각 ListView는 유사한 선택 가능 값 (예 : 1,2,3,4)을가집니다. 따라서 선택한 값만으로는 선택 항목이 어떤 ListView와 시작되었는지 구분할 수 없습니다.

답변

0

콜백 수신기는 동일한 활동 클래스로 구현되어서는 안됩니다. 두 listView에 대한 리스너를 자체적으로 구현할 수 있습니다. 예를 들어

:

listView1.setOnItemClickListener(listener1); 
listView2.setOnItemClickListener(listener2); 
0

은 다음과 같이 더 가독성 사용 익명 인터페이스를 활용하려면 다음

lstView.setOnItemClickListener(new OnItemClickListener() { 

      @SuppressWarnings("unchecked") 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) { 

       } 
      } 
     }); 
0

예는 세트에 의해 그것을 할 수있는이 목록은 전역 변수입니다. 콜백을 다음과 같이 확인하십시오.

public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) { 
    if(arg0 == mListView1){// listview1 item click} 
    else if(arg0 == mListView2){// listview2 item click} 
} 

희망 도움말.

관련 문제