当我想验证插入时,我有一个问题需要检索微调器的值。
这是我如何填充我的微调器:
ArrayList<HashMap<String, String>> myArrayList;
myArrayList= new ArrayList<HashMap<String, String>>();
for (int i = 0; i < studentList.length(); i++) {
JSONObject c = studentList.getJSONObject(i);
String id = c.getString("id");
String name = c.getString("name");
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", id);
map.put("name", name);
myArrayList.add(map);
}
之后:
SpinnerAdapter studentAdapter = new SimpleAdapter(
MyActivity.this, myArrayList,
R.layout.student, new String[] { "id", "name"},
new int[] { R.id.id, R.id.name });
mySpinner.setAdapter(studentAdapter);
当我点击我的按钮“OK”时,我得到了微调器的值
mySpinner.getSelectedItem().toString();
我明白了:
{id = 2,name = Smith}
但我确定还有另一种方法只检索名称,但是如何?通过旋转器获得适配器?这是我的问题......
谢谢
答案 0 :(得分:0)
我确定还有另一种方法只能检索名称,但是如何?
您可以使用OnItemSelectedListener,它始终具有用户当前的选择:
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String name = ((TextView) view.findViewById(R.id.name)).getText().toString();
// Do with name as you please
}
或者您可以使用与getSelectedView()
相同的技术仅在验证后获取名称。
答案 1 :(得分:0)
Spinner
给你的对象是一个HashMap。像这样抛出它,然后按照通常的方式提取值:
String studentName = ((HashMap)mySpinner.getSelectedItem()).get("name");
另一种选择:您可能希望使用ArrayList<HashMap>
来填充Spinner
,而不是使用ArrayList<Student>
填充Student
(假设Student
是您已经拥有的课程处置)。然后,您可以将当前选定的对象转换为String studentName = ((Student)mySpinner.getSelectedItem()).name;
并随意使用它:
{{1}}
答案 2 :(得分:0)
String data="{id=2, name=Smith}";//you retrieved
String array[]=data.split("name=");//split in values of '**id=2,** ' and '**Smith**'
String name=array[array.length-1]; //take last value
您将在名称变量中使用'Smith'。不是首选,但如果没有选择则使用它