Java 在onclick方法中捕获数据库ID

Java 在onclick方法中捕获数据库ID,java,android,sqlite,listview,onclick,Java,Android,Sqlite,Listview,Onclick,我有一个从SQL数据库填充的列表视图。我使用以下onlick代码来检测何时选择单元格: ListView yourList = (ListView) findViewById(android.R.id.list); yourList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(Ada

我有一个从SQL数据库填充的列表视图。我使用以下onlick代码来检测何时选择单元格:

ListView yourList = (ListView) findViewById(android.R.id.list);

    yourList.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  long arg3) {
                        Log.e("onClick",""+arg2);                                                                  
                        }   
    });
ListView-yourList=(ListView)findviewbyd(android.R.id.list);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
Log.e(“onClick”,“arg2”);
}   
});
目前这段代码告诉我点击了哪一行。但是,我想从数据库中捕获一个名为_ID的字段。项目在列表视图中的显示顺序与它们在数据库中的顺序不同,因为我在应用程序代码中对它们进行了算术排序

有人能帮忙吗


编辑我知道我可以使用arg3-但是它每行返回0。如何更正此问题?

该id包含在回调中。如果查看,方法签名是:

 public abstract void onItemClick (
        AdapterView<?> parent, View view, int position, long id)
公共摘要无效,请单击(
AdapterView父级、视图、整型位置、长id)

请注意,示例中的“id”字段是“arg3”。这是您正在查找的数据库中的“\u id”字段。

该id包含在回调中。如果查看,方法签名是:

 public abstract void onItemClick (
        AdapterView<?> parent, View view, int position, long id)
公共摘要无效,请单击(
AdapterView父级、视图、整型位置、长id)

请注意,示例中的“id”字段是“arg3”。这是您正在查找的数据库中的“\u id”字段。

添加:您必须向列表
适配器中的列表提供项目id。否则,它是怎么知道的。谢谢-但是arg3正在为每一行返回一个0的值?首先如何填充列表?从自定义适配器:public void bindView(视图视图、上下文上下文、游标游标){((TextView)View.findViewById(R.id.name)).setText(Cursor.getString(Cursor.getColumnIndex(“\u id”));((TextView)view.findviewbyd(R.id.description)).setText(cursor.getString(cursor.getColumnIndex(“区域”));((TextView)view.findviewbyd(R.id.address)).setText(cursor.getString(cursor.getColumnIndex(“AddressLine1”));啊解决了-愚蠢的错误-_id在我的数据库中实际上是一个名称字段。将其更改为唯一id字段,所有操作都正常。谢谢。另外:您必须在列表
适配器中的列表中提供项目id。否则,它怎么知道。谢谢-但是arg3为每行返回一个值0?如何填充l首先是列表?来自自定义适配器:public void bindView(视图视图、上下文上下文、光标光标){((TextView)View.findViewById(R.id.name)).setText(Cursor.getString(Cursor.getColumnIndex(_id));((TextView)View.findViewById(R.id.description)).setText(Cursor.getString(Cursor.getColumnIndex(“Area”);(TextView)view.findViewById(R.id.address)).setText(cursor.getString(cursor.getColumnIndex(“AddressLine1”));Ah解决了-愚蠢的错误-_数据库中的id实际上是一个名称字段。将其更改为唯一id字段,所有操作正常。谢谢。