Android 我们可以将2个值存储到微调器吗?

Android 我们可以将2个值存储到微调器吗?,android,arrays,spinner,Android,Arrays,Spinner,我正在做一个小应用程序项目,它要求用户从一个下拉列表中选择至少5个不同的值,也就是android中的spinner。我的问题是我需要显示城市的用户列表,然后获取用户选择的城市的ID 我已经到达了一个可以在spinner中读取数组索引值的位置,因此将1添加到其中,我就得到了ID。 这个链接有答案 和我一样, 但是现在城市是根据字母顺序(A-Z)来命名的,因此ID不再从1开始 我需要做的是,在微调器中存储2个值。一个是城市ID,另一个是城市名称。其中只有城市名称对用户可见。但只有城市ID才会进入数

我正在做一个小应用程序项目,它要求用户从一个下拉列表中选择至少5个不同的值,也就是android中的spinner。我的问题是我需要显示城市的用户列表,然后获取用户选择的城市的ID

我已经到达了一个可以在spinner中读取数组索引值的位置,因此将1添加到其中,我就得到了ID。 这个链接有答案 和我一样,

但是现在城市是根据字母顺序(A-Z)来命名的,因此ID不再从1开始

我需要做的是,在微调器中存储2个值。一个是城市ID,另一个是城市名称。其中只有城市名称对用户可见。但只有城市ID才会进入数据库

请给我指出解决问题的方向。或者任何人对此有任何想法或工作,请建议

String[] spinnerArray = new String[City_ID.size()];
HashMap<Integer,String> spinnerMap = new HashMap<Integer, String>();
for (int i = 0; i < City_ID.size(); i++)
{
spinnerMap.put(i,City_ID.get(i));
spinnerArray[i] = City_NAME.get(i);
}

ArrayAdapter<String> adapter =new ArrayAdapter<String>.   
(context,android.R.layout.simple_spinner_item, spinnerArray);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);


String name = spinner.getSelectedItem().toString();
String id = spinnerMap.get(spinner.getSelectedItemPosition());
String[]spinnerray=新字符串[City_ID.size()];
HashMap spinnerMap=新HashMap();
对于(int i=0;i

我做错什么了吗?

我以一个cutom旋转器结束。我有一个隐藏的编辑文本,然后我把城市名称放在文本视图中。编辑文本保存城市,而文本视图显示城市名称。我可以从数组索引访问选定的城市id。

我以一个cutom微调器结束。我有一个隐藏的编辑文本,然后我把城市名称放在文本视图中。编辑文本保存城市,而文本视图显示城市名称。我可以从数组索引访问选定的城市id。

试试这个

List<Map<String, Object>> rData = new ArrayList<>();
List rData=new ArrayList();
然后,添加您的项目

for (int i = 0; i < City_ID.size(); i++) {
    Map<String, Object> item = new HashMap<>();
    item.put("id", City_ID.get(i));
    item.put("name", City_NAME.get(i));
    rData.add(item);
}
SimpleAdapter arrayAdapter = new SimpleAdapter(MainActivity.this, rData,
                        android.R.layout.simple_spinner_dropdown_item,
                        new String[]{"name"}, new int[]{android.R.id.text1});
spinner.setAdapter(arrayAdapter);
for(int i=0;i
要获取所选项目的名称和id

Map<String, Object> selectedItem = rData.get(spinner.getSelectedItemPosition());
String name = selectedItem.get("name").toString();
String id = selectedItem.get("id").toString();
Map selectedItem=rData.get(spinner.getSelectedItemPosition());
String name=selectedItem.get(“name”).toString();
String id=selectedItem.get(“id”).toString();
试试这个

List<Map<String, Object>> rData = new ArrayList<>();
List rData=new ArrayList();
然后,添加您的项目

for (int i = 0; i < City_ID.size(); i++) {
    Map<String, Object> item = new HashMap<>();
    item.put("id", City_ID.get(i));
    item.put("name", City_NAME.get(i));
    rData.add(item);
}
SimpleAdapter arrayAdapter = new SimpleAdapter(MainActivity.this, rData,
                        android.R.layout.simple_spinner_dropdown_item,
                        new String[]{"name"}, new int[]{android.R.id.text1});
spinner.setAdapter(arrayAdapter);
for(int i=0;i
要获取所选项目的名称和id

Map<String, Object> selectedItem = rData.get(spinner.getSelectedItemPosition());
String name = selectedItem.get("name").toString();
String id = selectedItem.get("id").toString();
Map selectedItem=rData.get(spinner.getSelectedItemPosition());
String name=selectedItem.get(“name”).toString();
String id=selectedItem.get(“id”).toString();

你做了什么?你的代码在哪里?我已经编辑并添加了代码。请检查一下,我觉得代码没问题。你确定它不起作用吗?它起作用了,但这是一段旧代码。根据新的要求,我必须将2个值存储到微调器。根据选择,只应显示一个,另一个应读取/带到数据库。我不知道怎么做,你做了什么?你的代码在哪里?我已经编辑并添加了代码。请检查一下,我觉得代码没问题。你确定它不起作用吗?它起作用了,但这是一段旧代码。根据新的要求,我必须将2个值存储到微调器。根据选择,只应显示一个,另一个应读取/带到数据库。不知道该怎么做。