2010-11-11 44 views
0

我已經寫了一個應用程序使用有一個小的SQL精簡版數據庫,並使用遊標適配器我可以檢索記錄並填充他們的列表視圖。從那裏我可以得到一個選定的項目的ID並從數據庫中刪除它很好。我遇到的問題是,隨着數據庫的增長一次刪除一行將會變得緩慢和令人沮喪,所以我想知道是否有任何方法可以使用複選框或者通過更改所選項目的文本顏色以便我可以撤回他們的相關身份證件。帶多選的光標適配器

我已經閱讀了一些關於自定義遊標適配器的帖子,但我不知道如何使它們適應我的代碼。我已經在下面發佈了我的代碼。

private void fillData() { 
    Cursor c = mDbHelper.fetchAllNotes(); 
    startManagingCursor(c); 

    String[] from = new String[] {DBHelper.KEY_FIELD0, 
          DBHelper.KEY_FIELD1, 
          DBHelper.KEY_FIELD2, 
          DBHelper.KEY_FIELD3, 
          DBHelper.KEY_FIELD4}; 
    int[] to = new int[] {R.id.text,R.id.text2,R.id.text3,R.id.text4,R.id.text5}; 
    SimpleCursorAdapter dblist = new SimpleCursorAdapter(this, R.layout.row, c, from, to);                        
    setListAdapter(dblist); 
} 

謝謝。

回答

0

我沒有這樣做我自己,但我沒有找到這個教程,說明如何複選框添加到列表:

http://www.androidpeople.com/android-listview-multiple-choice-example/

您可以使用例如允許列表中的項目的multipe選擇控制。而不是像本例中那樣使用陣列陣列適配器,而是使用SimplecursorAdapter。唯一需要解決的問題是,該示例使用android.R.layout.simple_list_item_multiple_choice作爲列表條目,並且您需要將其替換爲佈局,因爲您顯然需要多個文本字段。

我不在家,所以我不能嘗試,但我沒有找到這樣的: http://www.mail-archive.com/[email protected]/msg21920.html

這似乎是指製作自己的multiple_choice佈局列表項。

用戶已經做出他們的選擇後,你可以在你的數據庫適配器運行SQL一次刪除多個記錄:

DELETE FROM test WHERE _id IN (1, 3, 6, 7) 

其中數字是的列表中選擇的ID值。

+0

伊恩,非常感謝,我將開始將它集成到我現有的代碼中。我對android和SQLite很陌生我不知道我是否會提出另一個應該很簡單但不適合我的問題。我想對數據庫運行一個簡單的選擇計數,並能夠將結果編號傳遞給文本視圖。 – user500963 2010-11-12 22:11:57

+0

我已經創建了我的自定義佈局來顯示所有的字段並添加了一個複選框,但是我失去了選擇一個項目並捕獲它的ID的能力。我可以選中/取消選中複選框。 – user500963 2010-11-13 13:47:59

+0

我發現解決方法是將複選框的可聚焦屬性設置爲false,並允許再次選擇項目。 – user500963 2010-11-13 14:08:14

相關問題