【发布时间】:2012-05-30 11:13:37
【问题描述】:
我在开发的应用程序中遇到了一些问题。 所以,我所有的表都有 _id 字段作为主键,我使用 SimpleCursorAdapter 将它们绑定到 ListViews 和 Spinners。 我想知道的是如何使 ListView 或 Spinner 选定项与相应行具有相同的 ID?
奇怪的是,这适用于 ContextMenu,我直接使用 NotePad 示例:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
info.id
这个 ID 字段 IS 与表格上的 RowID 相同,我可以很好地删除项目,但是当我尝试这样的事情时:
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapter, View view,
int position, long arg) {
Intent i = new Intent(getApplicationContext(),
FuelingList.class);
long id = view.getId();
ID 字段是一些随机的橡胶状。 所以我的问题是,在第一个代码位中,AdapterContextMenuInfo 获取的 Id 是什么,如何在我的代码的其他部分检索它?
【问题讨论】:
-
对不起,我不知道。会的,谢谢!
-
另外一件事,如果我需要访问所选项目的 ID,在代码的任何其他位置(不在侦听器上),有没有比
((SimpleCursorAdapter) item.getAdapter()) .getCursor().getLong( ((SimpleCursorAdapter) fuelType .getAdapter()).getCursor() .getColumnIndex("_id"))更简单的方法?
标签: android database sqlite simplecursoradapter