所以,我有一个名称和id
的ArrayListGil 232
Asty 2423 and so on.
要在微调器中使用它,我所做的是创建两个单独的String Arraylists。一个包含名称,另一个包含相应的ID。因此,一旦选择了用户,我将从该位置获得相应的ID。
我不知道如何做最后一部分。至于如何获得这个位置?> parent.getItemAtPosition(pos).toString();
这再次给出了我的名字,而不是ArrayList中名称的位置,我可以用它从其他列表中检索ID。怎么做?而且,他们是一个更好的方式去做吗?
答案 0 :(得分:1)
public class User {
public int id;
public String name;
}
public class CustomAdapter extends ArrayAdapter<Data> implements Spinner
.OnItemSelectedListener {
@Override
public View getView(int position, View convertView, ViewGroup parent){
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(android.R.layout.simple_spinner_item,
parent, false);
Data data = getItem(position);
// Do something with data and view here
return view;
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg4) {
Data data = getItem(position);
// Do something with data here
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}
然后创建ArrayList<Data>
并与CustomAdapter
一起使用。
答案 1 :(得分:0)
pos
变量是从Spinner中选择的项目的位置,因此您可以使用此位置来获取所选对应名称的id(来自第二个ArrayList)。
作为替代方案,您还可以创建HashMap<String,String> map
并且在该地图中放置了map.put(name,id);
之类的值,因此当用户从Spinner中选择值时,您将选择该名称。然后使用地图获取相应的ID
like String id = map.get(selected_name);
希望它会有所帮助。