2014-05-14 2 views
1

병합 어댑터를 사용하여 android.I에있는 두 개의 사용자 정의 커서 어댑터를 병합했습니다. 사용자 정의 커서 어댑터에서 데이터를 가져 오는 클릭 한 섹션을 찾을 수 없습니다. 목록 뷰를 클릭하면 어떻게 어댑터 객체를 가져올 수 있습니까? 나는 listview의 onitemclick에서 다음과 같은 방법을 시도했다. 그러나 "clicked on question section"텍스트는 인쇄되지 않습니다. 그러나 [email protected]을 반환합니다. listview에서 클릭 한 섹션을 어떻게 찾을 수 있습니까? 목록보기를 클릭 할 때Mergeadapter에서 Listview 섹션 어댑터를 찾으셨습니까?

if (parent.getAdapter().getItem(position) instanceof FeedMentionQuestionAdapter) { 
     LivLog.info(getClass(), "clicked on mention question section "); 

    } 
+0

@ CommonsWare, 내 대답을 참조하십시오. –

답변

1

어떻게 어댑터 개체를 얻을 수 있나요?

ListView에는 자체 어댑터를 들거나 getAdapter()으로 전화해야합니다.

하지만 [email protected]

를 반환은 아마도, 당신은 MergeAdapterCursorAdapter을 넣어.

또한 getItem()은 절대로 어댑터를 반환하지 않습니다. 항목을 반환합니다. 특정 position을 처리하는 어댑터를 확인하려면 getAdapter()으로 전화하십시오.

listview에서 클릭 한 섹션을 어떻게 찾을 수 있습니까?

SectionIndexer을 언급하는 경우 섹션이 클릭되지 않습니다.

+0

다음 단계를 통해 listview.But을 클릭 한 섹션을 찾았지만 클릭 한 섹션을 찾을 수 없습니다. 1 단계 : mergeadapter.getAdapter (position) -> 결과로 "[email protected]"을 반환합니다. FeedQuestionCursorAdapter 을 병합 어댑터의 두 번째 부분으로 사용했습니다. 항상 "com.liv"를 반환합니다. [email protected] ", mergeadapter 의 첫 번째 부분을 클릭하면됩니다. 그리고 mergeadapter의 첫 번째 부분은 FeedMentionQuestionAdapter입니다. –

+0

단계 2 : (FeedMentionQuestionAdapter instanceof를 lvFeedquestions.getAdapter()) { \t \t \t \t \t \t LivLog.info 경우 (getClass() "언급 연"); 다른 \t \t \t \t \t} 경우 (FeedQuestionCursorAdapter instanceof를 lvFeedquestions.getAdapter()) { \t \t \t \t \t LivLog.info (getClass() "일반 연"); \t \t \t \t \t} 다른 { \t \t \t \t \t \t LivLog.info (getClass(), "뭔가 잘못 ....."); \t \t \t \t \t} –

+0

그러나 항상 반환합니다".. 뭔가 로그 메시지로 "..... 잘못된 \t \t \t \t 제안하십시오, 나는이 problm를 해결할 수는 어떻게 결정하려면 어떤 어댑터를 클릭 했습니까? –

관련 문제