【问题标题】:Android: Is there a way to add an object to a spinner and display only a property of it?Android:有没有办法将对象添加到微调器并仅显示它的属性?
【发布时间】:2015-10-07 18:56:29
【问题描述】:

我有一个名为 spinnerItems 的数组,由 DateSpinnerItem 类型的对象填充。我将它传递给一个适配器,供 Spinner 使用。

我的 DataSpinnerItem 对象具有三个属性:Label、Date1 和 Date2。

我的问题是,有没有办法将它们添加到适配器,但在选项中只显示 object.Label?

我的 DataSpinnerItem 类:

public class DateSpinnerItem {

public String Label;
public String dateInicioStringValue;
public String dateFinalStringValue;

public DateSpinnerItem(){

}
}

我的适配器:

ArrayAdapter<DateSpinnerItem> adapter = new ArrayAdapter<DateSpinnerItem>(this, android.R.layout.simple_spinner_dropdown_item) {

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = super.getView(position, convertView, parent);
            //((TextView) v).setGravity(Gravity.CENTER);
            return v;
        }

        @Override
        public int getCount() {
            return super.getCount();
        }

        public View getDropDownView(int position, View convertView,ViewGroup parent) {

            View v = super.getDropDownView(position, convertView,parent);

            ((TextView) v).setGravity(Gravity.CENTER);

            return v;

        }
    };

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    for (int i=0; i<spinnerItems.length; i++){
        adapter.add(spinnerItems[i]);
    }

    sp.setAdapter(adapter);
    sp.setSelection(adapter.getCount()-1); //display hint

提前致谢!

【问题讨论】:

    标签: java android adapter android-spinner custom-adapter


    【解决方案1】:

    找到了解决办法!它实际上比我想象的要简单得多。

    只需覆盖我的自定义类 (DataSpinnerItem) 中的 toString 方法即可返回标签:

    public class DateSpinnerItem {
    
    public String Label;
    public Date dateInicioStringValue;
    public Date dateFinalStringValue;
    
    public DateSpinnerItem(){
    
    }
    
    @Override
    public String toString() {
        return Label;
    }
    }
    

    这样,我可以将 DataSpinnerItems 添加到适配器,并且由于 toString() 覆盖它为我显示代表添加对象的标签!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 2020-12-31
      • 1970-01-01
      • 2022-12-17
      相关资源
      最近更新 更多