2012-04-26 25 views
1

所以,我有姓名和身份證如何在Android中以這種特定的方式使用微調器?

Gil 232 
Asty 2423 and so on. 

要在微調使用一個ArrayList,我所做的就是要創建兩個單獨的字符串的ArrayList。一個包含名稱,另一個包含相應的ID。所以,一旦用戶被選中,我會從該位置獲得相應的ID。

我不知道該怎麼做最後一部分。至於,如何得到位置?>parent.getItemAtPosition(pos).toString(); 這給了我一個名字,而不是名稱在ArrayList中的位置,我可以使用它來從另一個列表中檢索ID。怎麼做?而且,他們是更好的方式去做呢?

+0

http://stackoverflow.com/questions/1625249/android-how-to-bind-spinner-to-custom-object-list – MKJParekh 2012-04-26 12:52:14

回答

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使用。

0

pos變量是從Spinner中選擇的項目的位置,因此您可以使用此位置來獲取所選相應名稱的ID(來自第二個ArrayList)。

作爲替代方案,你也可以創建一個HashMap<String,String> map 和類似map.put(name,id);該地圖認沽值,所以當用戶將微調選擇值,你將有名稱selected.And然後使用地圖上得到相應的ID

like String id = map.get(selected_name); 

希望它會有所幫助。

相關問題