2011-03-11 8 views
0

내 응용 프로그램에서 내 listview에 대한 문자열 [] 또는 ArrayList [] ... 의해 채워지는 SimpleCursorAdapter 사용해야합니다.ListView의 SimpleCursorAdapter?

다음 코드를 시도 :

ArrayList<String> mDisplay = new ArrayList<String>(); 
Cursor c = (Cursor) mDisplay.iterator(); 
    lv_contactlist.setAdapter(new SimpleCursorAdapter(this, android.R.layout.simple_list_item_checked, c ,new String[]{mDisplay.toString()}, new int[]{android.R.id.text1})); 

하지만 오류가 표시

원인 : java.lang.ClassCastException : java.util.ArrayList $ ArrayListIterator at com.kpj4s.way2sms.ContactsList.onCreate (ContactsList.java:62) android.app.Instrumentation .CallActivityOnCreate (Instrumentation.java:1047) andx.app.ActivityThread.performLaunchActivity (ActivityThread.java:1586)의

커서 객체 "c"가 올바르게 설정되지 않았다고 생각합니다.

can any 하나는 코드와 함께 나를 도와 또는 대안 (참고 : SimpleCursorAdapter를 사용해야합니다)

감사합니다 :)

답변

2

Cursor은 일반적으로 데이터베이스 쿼리의 결과입니다. 데이터베이스를 쿼리하지 않고 IteratorCursor이 아니므로 ClassCastException입니다. 당신은 당신이 정말로 만 표시하려면 연락처 정보는 http://developer.android.com/guide/topics/providers/content-providers.html

에서 "컨텐트 프로 바이더 쿼리"섹션을 참조 수집하는 컨텐트 프로를 조회 희망하는 경우

ArrayList<String>ArrayAdapter 시도 : http://developer.android.com/reference/android/widget/ArrayAdapter.html

+0

1 나는 또한'ArrayAdapter'를 제안 할 것이다. –

+0

ArrayAdapter가 DoS가해야한다고 말하는 방식으로 동작시키려는 시도 (및 실패)의 고통을 겪었으므로 시작하기 전에 몇 가지 뻣뻣한 음료를 붓고 싶을 수도 있습니다. –

관련 문제