2015-01-19 4 views
0

ListActivity를 확장하는 활동이 있습니다. onCreate 메소드에서 다음을 수행합니다.Android에서 null을 반환하는 GetListAdapter

 ListView listView = (ListView) findViewById(android.R.id.list); 
     listView.setAdapter(new InteractiveArrayAdapter(this, model)); 

xml 레이아웃에 정의 된 myviewview 위젯에 대한 사용자 정의 어댑터를 설정합니다.

내 사용자 지정 어댑터 인 InterativeArrayAdapter는 ArrayAdapter를 확장합니다. 모델은 목록 뷰 항목 데이터를 관리하기 위해 빌드 한 클래스입니다.

내 문제가 ListActivity를 확장하는 활동이다 : 나는 버튼을 처리 할 때 나는 다음을 수행하십시오

adapter = (InteractiveArrayAdapter) getListAdapter(); 

어댑터가 null 값을 너무 가져옵니다

public void onClickCompareButton(View view) { 
    InteractiveArrayAdapter adapter; 
    Set<Integer> checkedItems; 
    Iterator<Integer> it; 
    Model element; 

    adapter = (InteractiveArrayAdapter) getListAdapter(); 
    checkedItems = adapter.getCheckedItems(); 
    it = checkedItems.iterator(); 

    int size = checkedItems.size(); 
    for (int i = 0; i < size; i++) { 
     element = adapter.getItem(it.next()); 
     // TODO 
    } 
} 

문제 것은 캐스트입니다 다음 줄 충돌 :

checkedItems = adapter.getCheckedItems(); 

해결 방법에 대한 아이디어가 있습니까?

답변

2

문제는 어댑터를 목록에 설정하는 방식으로 이루어져야합니다.

ListView listView = (ListView) findViewById(android.R.id.list); 
listView.setAdapter(new InteractiveArrayAdapter(this, model)); 

ListActivity를 확장 했으므로 ListView는 기본적으로 활동에 사용할 수 있어야합니다. 당신이 ListActivity를 확장 사용할 수 있습니다 - 그래서 당신은

setListAdapter(new InteractiveArrayAdapter(this, model)); 

setListAdapter (adapterObj)는,이 시도해야합니다.

+1

오 마이 갓! 무슨 실수 야! 매우 감사합니다! 그것은 작동합니다! – user1624552