2013-03-08 23 views
0

當我想驗證插入時,檢索微調器的值時出現問題。在驗證後檢索微調器的值

這裏是我如何填寫我的微調:

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); 

當我點擊我的「確定」按鈕,我也得到了微調與

mySpinner.getSelectedItem().toString(); 

我得到:

{ID = 2,名稱=史密斯}

但我敢肯定還有另一種方法僅檢索名稱,但如何?通過使微調器獲得適配器?這是我的問題...

謝謝

回答

0

Spinner給你的對象是一個HashMap。鑄造它是這樣,然後提取價值,你通常會的方式:

String studentName = ((HashMap)mySpinner.getSelectedItem()).get("name"); 

另一種選擇:而不是使用ArrayList<HashMap>來填充Spinner,您可能需要使用ArrayList<Student>(假設Student做到這一點是你已經擁有的課程)。然後,可以將當前選中的對象轉換爲Student,並使用它,請你:

String studentName = ((Student)mySpinner.getSelectedItem()).name; 
+0

它的工作原理!非常感謝你:) – user2021346 2013-03-08 21:53:48

+0

樂意幫忙。請將此答案標記爲已接受,以便其他人可以快速查看爲您解決的問題。 – Blumer 2013-03-08 22:01:15

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()只有您的驗證後得到的名稱。

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 

您將有「史密斯」的名義變量。不是首選,但如果沒有選擇,然後使用它