2011-07-06 60 views
0

我在DataBaseHelper類寫了這個方法:的Android SimpleCursorAdapter問題

public Cursor fetchData(String tableName) { 
    return myDataBase.rawQuery("SELECT rowid as _id, title FROM "+tableName, null); 
} 

而且寫在我的活動之一,此代碼:

try { 
     Cursor cursor = myDbHelper.fetchData("tableName"); 
     String[] columns = {cursor.getColumnName(0), cursor.getColumnName(1)}; 
     int[] columnsLayouts = {R.id.layout1, R.id.layout2}; 
     SimpleCursorAdapter ca = new SimpleCursorAdapter 
          (this.getBaseContext(), 
          android.R.id.list, cursor,columns , columnsLayouts); 
     lv.setAdapter(ca); //lv is my ListView with id="@android:id/list" 
     txt.setText("Done ! : "); //Process is Ok 

    } catch (Exception e){ 
     txt.setText("Error"); //Error happens 
    } 

的代碼編譯確定。但是,當達到此線lv.setAdapter(ca);時,它強行關閉。

是否有問題? 我做錯了嗎?

-

UPDATE: 這是logcat的錯誤(後我通過它們進行過濾:android.view)試圖誇大你的列表視圖中的項目時

LogCat screen

+1

你正在得到什麼錯誤? –

+0

沒有錯誤!應用程序迫使關閉。我相信錯誤發生在'lv.setAdapter()'行,但我不知道爲什麼! – iTurki

+0

如果這可能有所幫助:我聲明這樣的看法:'ListView lv =(ListView)findViewById(android.R.id.list);' – iTurki

回答

1

Android的崩潰。 constructor的第二個參數是佈局 -

layout - 定義此列表項的視圖的佈局文件的資源標識符。佈局文件應該至少包含在「to」中定義的那些命名視圖

您傳遞的android.R.id.list對我來說聽起來像是傳遞列表ID而不是項目的ID。

+0

你完全正確。我忘了項目佈局。雖然我在SCA方面有問題,但現在解決了力量關閉問題。謝謝 :) – iTurki

相關問題