2013-05-03 4 views
0

listview에 내 콘텐츠를 표시하는 중 오류가 발생했습니다. 오류는 말한다 :목록보기를 표시 할 때 비정상적인 예외가 발생했습니다.

Cursor cursor=way.fetchDetails(); 
    String[] columns=new String[] {WayDataBase.KEY_NAME,WayDataBase.KEY_APPNO,WayDataBase.KEY_AMOUNT}; 

    int[] to=new int[] {R.id.name, 
      R.id.continent, 
      R.id.region}; 

    adapter=new SimpleCursorAdapter(this, R.layout.country_info, cursor, columns, to, 0); 

    ListView listview=getListView(); 
    listview.setAdapter(adapter); 

데이터베이스 코드는 다음과 같습니다 : 다음과 같이

05-03 08:00:13.575: E/AndroidRuntime(3341): java.lang.RuntimeException: Unable to start activity     ComponentInfo{com.android.lthomepage/com.android.lthomepage.ListViewDetails}: java.lang.IllegalArgumentException: column '_id' does not exist 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.os.Looper.loop(Looper.java:137) 
05-03 08:00:13.575: E/AndroidRuntime(3341): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.support.v4.widget.CursorAdapter.init(CursorAdapter.java:174) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.support.v4.widget.CursorAdapter.<init>(CursorAdapter.java:151) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.support.v4.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:93) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at android.support.v4.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:89) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at com.android.lthomepage.ListViewDetails.displaylistView(ListViewDetails.java:77) 
05-03 08:00:13.575: E/AndroidRuntime(3341):  at  com.android.lthomepage.ListViewDetails.onCreate(ListViewDetails.java:42) 

목록보기 코드는

public Cursor fetchDetails() 
{ 

    createAllValuesTable(); 
    Cursor mCursor=db.query(AllValuesTable, new String[] {KEY_NAME,KEY_APPNO,KEY_AMOUNT}, null, null, null, null, null); 

    if (mCursor != null) { 
      mCursor.moveToFirst(); 
      } 
      return mCursor; 
} 

것입니다 내가 알아낼 질수 문제? 나는 어떤 열도 _id로 갖고 있지 않으며 나는 이걸 보여주고있다! 도와주세요! 감사! 리스트 뷰 위젯에 커서에서 데이터를 노출

안드로이드 개발자 사이트에서

답변

2

에게

어댑터. 커서에 "_id"라는 열이 포함되어 있거나 class이 작동하지 않습니다.

SimpleCursorAdapter과 함께 커서를 사용하려고하면 _id이라는 열이 필요합니다. 테이블 생성 문을 편집하고 _id이라는 열을 추가하는 것만 큼 간단합니다. 선언은 다음과 같아야합니다.

_id INTEGER PRIMARY KEY AUTOINCREMENT

+1

안녕하십니까? 그것은 정말로 도움이되었다! 마지막으로 해결 된 문제! – shivani

+0

감사합니다. 항상 환영합니다. –

관련 문제