spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int pos, long arg3)
{
String name;
name=parent.getItemAtPosition(pos).toString();
String[] projection1 = new String[]{
People._ID
};
Cursor pCur=getContentResolver().query(People.CONTENT_URI, projection1,People._ID+"="+name,null,null);
pCur.moveToFirst();
if(pCur.moveToFirst())
{
String id;
int x=0;
do
{
id=pCur.getString(pCur.getColumnIndex(People._ID));
Toast.makeText(parent.getContext(),"resule::"+id,Toast.LENGTH_LONG).show();
x++;
}while(pCur.moveToNext());
}
}
public void onNothingSelected(AdapterView<?> arg0)
{
// DO Nothing
}
});
我是android开发的新手.spinner有所有联系人名称我想从特定名称获取id。请帮助我。
提前致谢
此致 Arpit Trivedi
答案 0 :(得分:0)
如果你想从列表中获取特定的id,那么你应该在setOnItemSelectedListener()
之外填充微调器,因为你在单击项目时会这样做。获取项目数据的所有操作都是name=parent.getItemAtPosition(pos);
,就像您在开始时所做的那样。只需在此方法之外填充微调器,请在获取联系人后点。我希望这会有所帮助。
答案 1 :(得分:0)
使用名称调用此方法。您将获得id
public long idForName(String name){
int count=spinner.getCount();
for(int i=0;i<count;i++)
if(spinner.getItemAtPosition(i).equals(name)) return spinner.getItemIdAtPosition(i);
}