我有一個由SQLiteDB提供的ListView。在返回的每一行上,我都有一個可單擊的TextView,onClick應刪除該行上的項目。所以我需要找到sql rowid,所以我可以調用deleteItem(rowid)。如何從ListView中的SQLiteDB獲取RowID?
我已經試過把一個看不見的TextView填充到sql rowid當ListView被填充,它的工作原理。但是我將內容視圖設置爲R.layout.list_view,而不可見的TextView位於R.layout.list_item(每條項目行的自定義佈局)中,所以我似乎無法訪問它。
我該如何去做這項工作或有更好的方法?
這裏是填充ListView控件的代碼:
private void fillData() {
// Get all of the notes from the database and create the item list
Cursor c = mDbHelper.fetchAllNotes();
startManagingCursor(c);
String[] from = new String[] { CommonDbAdapter.KEY_NOTES };
int[] to = new int[] { R.id.text1 };
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
setListAdapter(notes);
}
這是我目前的點擊收聽,我不知道如何在項目,它返回該項目以另一個活動點擊區分和點擊將刪除該項目的文本視圖。
itemList = (ListView) findViewById(android.R.id.list);
itemList.setTextFilterEnabled(true);
itemList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Intent intent = new Intent();
Bundle b = new Bundle();
b.putString("TEXT", ((TextView)v.findViewById(R.id.text1)).getText().toString());
intent.putExtras(b);
setResult(SUCCESS_RETURN_CODE, intent);
finish();
}
});
我最初試圖獲得rowid並在佈局中使用一個簡單的onClick集。但有問題得到rowid。
public void clickDelete(View view) {
mDbHelper.deleteNote(rowid);
}
你似乎正在過度如何做到這一點我想..向我們展示填充listview和你的listview適配器的代碼。它會更容易告訴你你應該改變什麼 – binnyb 2011-02-28 22:18:34