Android 如何在微调器中按名称获取ID?

Android 如何在微调器中按名称获取ID?,android,spinner,Android,Spinner,我想获取我在spinner中选择的特定名称的id。我这样做了,但它将打印_id我如何检索特定名称的id public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String sel_name,numbers; //String[] name=new String[]{arg0.getItemAtPosition

我想获取我在spinner中选择的特定名称的id。我这样做了,但它将打印_id我如何检索特定名称的id

public void onItemSelected(AdapterView<?> arg0, View arg1,
    int arg2, long arg3) {          
    String sel_name,numbers;            
    //String[] name=new String[]{arg0.getItemAtPosition(arg2).toString()};


    sel_name=arg0.getItemAtPosition(arg2).toString();
    String[] p=new String[]{People._ID};
    Cursor cur=getContentResolver().query(People.CONTENT_URI, p,People.NAME+"= '"+sel_name+"'" ,null , null);
    String r=cur.getString(cur.getColumnIndex(People._ID)); 
    Toast.makeText(arg0.getContext(),r, Toast.LENGTH_LONG).show();
}

您需要添加一个游标。moveToFirst;在使用光标之前调用。

如果您引用的是sel_名称,则应执行以下操作以获取视图id:

sel_name = String.valueOf(arg0.getChildAt(arg2).getId());

在光标后添加以下内容

while(cur.moveToNext)
{
   String r=cur.getString(cur.getColumnIndex(People._ID));
}

如果您指的是字符串,请使用相应名称的id。alw ays使用id作为int only,因为R文件只有int条目,所以很容易处理

我想这是我选的 arg1.getId将起作用


或者在微调器的customAdapter的get视图中尝试setTagid,然后在onItemSelected int id=arg1.getTag中尝试

感谢您的回复,但我没有得到答案。我将所有名称存储在微调器中。如果我从微调器中选择了存储在sel_name中的任何名称,那么我需要该特定名称的_id。您可以为此编写查询吗。提前感谢感谢您的回复,但我没有得到答案。我将所有名称存储在spinner中。如果我从spinner中选择了存储在sel_name中的任何名称,那么我需要该特定名称的_id。您可以为此编写查询吗。提前感谢感谢您的回复,但我没有得到答案。我将所有名称存储在spinner中。如果我从spinner中选择了存储在sel_name中的任何名称,那么我需要该特定名称的_id。您可以为此编写查询吗。提前谢谢对不起…我只为女孩们提供帮助。。。。在数组中存储名称……现在在onItemSelectedAdapterView arg0、视图arg1、int arg2、long arg3中,int arg2是您选择的位置。类似字符串myname=nameArray[arg2];感谢您的回复,但我没有得到答案。我将所有名称存储在微调器中。如果我从微调器中选择了存储在sel_name中的任何名称,那么我需要该特定名称的_id。您可以为此编写查询吗。提前感谢,我认为您使用的是2.0 api的背面。好吧,试试这个,找到某个联系人的身份证。Cursor cur=getContentResolver.QueryPople.CONTENT\u URI,People.Data.\u ID,People.NAME+='+sel\u NAME+',null,null;whilecur.moveToNext{cursor.getStringcursor.getColumnIndexPeople.Data.\u ID}