2

我正在从托管的移动服务客户端检索自定义对象列表Azure Cloud,现在我想将此类的一个属性绑定到客户端中的控件。SpinnerAndroid

作为下面的代码,我有一个List<Departement>来自 Azure 移动服务的消息,我想在 Android 客户端中将DepartmentName绑定到这个Spinner

public class Department
{
    public int ID;
    public String DepartmentName;
}

任何建议都非常感谢

4

1 回答 1

7

您可以:

  1. 覆盖 toString()您的自定义对象中的方法以根据您的自定义 属性返回良好的值

    public class Department
    {
        public int ID;
        public String DepartmentName;
    
        @Override
        public String toString() {
           return DepartmentName;
        } 
    }
    

    然后在你看来

    public void populateSpinner(Context context, List<Department> departments, Spinner spinner)
    {
        ArrayAdapter<Department> adapter = new ArrayAdapter<Department>(context, android.R.layout.simple_spinner_item, departments);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    } 
    
  2. List<String>为您的微调器适配器创建一个临时的

    public void populateSpinner(Context context, List<Department> departments, Spinner spinner)
    {
        List<String> list = new ArrayList<String>();
        for(Department dep : departments) {
            list.add(dep.DepartmentName);
        }
    
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    }   
    
  3. 最后但同样重要的是,使用您自己的适配器,BaseAdapter而不是使用通用ArrayAdapter的,它将拥有自定义对象列表并为您的微调器提供视图。

于 2013-06-26T12:07:33.383 回答