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

时间:2011-07-29 05:42:42

标签: android spinner

我想得到我在spinner.i中选择的特定名称的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();
}

4 个答案:

答案 0 :(得分:0)

你需要添加一个cursor.moveToFirst();在使用光标之前调用。

答案 1 :(得分:0)

如果您指的是自_name,那么您应该采取以下措施来获取视图的ID:

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

答案 2 :(得分:0)

在光标

之后添加以下内容
while(cur.moveToNext)
{
   String r=cur.getString(cur.getColumnIndex(People._ID));
}

答案 3 :(得分:0)

如果你的意思是一个字符串,那么

用特殊名称的id来避免这样做。 ALW ays只使用id作为int,因为R文件只有int条目,所以很容易处理。

对于这个我想在onItemSelected  arg1.getId()将工作........

或在获取spinner的customAdapter的视图中尝试setTag(id),然后在onItemSelected int id = arg1.getTag();