【发布时间】:2012-03-18 20:39:41
【问题描述】:
在我的 Activity 类中,我覆盖了 onCreateDialog() 方法
代码有点如下所示。
该对话框现在列出了我的联系人列表中的所有项目。
当用户单击此列表中的项目时,我想获取联系人 ID
点击项的值,即字段Phone._ID的值。
目前我只得到里面所选项目的位置(索引)
which OnClickListener 的参数。
如果列表显示在 ListActivity 中,我可能会使用:
getListView().getItemIdAtPosition(which);
但在这里我无法获得对 ListView 的引用。 如何从使用光标创建的列表对话框中获取单击项目的 ID。
protected Dialog onCreateDialog(int id) {
String[] projection = new String[] {
Phone._ID,
Phone.DISPLAY_NAME,
Phone.NUMBER
};
Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
projection, null, null, null);
return new AlertDialog.Builder(ContactActivity.this)
.setTitle("Select Contacts")
.setCursor(cursor,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
/* User clicked on a contact item */
Toast.makeText(getApplicationContext(),
"CLICKED-"+which,
Toast.LENGTH_SHORT).show();
}
}, ContactsContract.Contacts.DISPLAY_NAME)
.create();
}
提前致谢
【问题讨论】:
标签: android listview dialog contacts