我有一个由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