【问题标题】:How to use spinner in Android in this particular way?如何以这种特殊方式在 Android 中使用微调器?
【发布时间】:2014-02-13 01:30:52
【问题描述】:

所以,我有一个具有名称和 id 的 ArrayList

Gil 232
Asty 2423 and so on. 

要在微调器中使用它,我所做的是创建两个单独的字符串数组列表。一个包含名称,另一个包含相应的 ID。所以,一旦用户被选中,我就会从该位置获取相应的 id。

我不知道最后一部分该怎么做。至于,如何获得职位?> parent.getItemAtPosition(pos).toString(); 这再次给了我名称,而不是名称在 ArrayList 中的位置,我可以使用它从另一个列表中检索 ID。怎么做?而且,他们是更好的解决方法吗?

【问题讨论】:

标签: java android spinner adapter


【解决方案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&lt;Data&gt; 并与您的CustomAdapter 一起使用。

【讨论】:

    【解决方案2】:

    pos 变量是从 Spinner 中选择的项目的位置,因此您可以使用该位置来获取被选择的相应名称的 id(来自第二个 ArrayList)。

    您也可以创建一个HashMap&lt;String,String&gt; map 并在该地图中输入 map.put(name,id); 之类的值,因此当用户从 Spinner 中选择值时,您将选择名称。然后使用地图获取相应的 id

    like String id = map.get(selected_name);
    

    希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多