Android:有没有办法将对象添加到微调器并仅显示它的 属性?
Android: Is there a way to add an object to a spinner and display only a property of it?
我有一个名为 spinnerItems 的数组,其中填充了 DateSpinnerItem 类型的对象。我将它传递给 Spinner 使用的适配器。
我的 DataSpinnerItem 对象具有三个属性:Label、Date1 和 Date2。
我的问题是,有没有办法将它们添加到适配器,但在选项中只显示 object.Label?
我的 DataSpinnerItem class:
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
提前致谢!
找到解决办法了!其实比我想象的要简单很多。
只需将 toString 方法从我的自定义 class (DataSpinnerItem) 覆盖到 return 标签:
public class DateSpinnerItem {
public String Label;
public Date dateInicioStringValue;
public Date dateFinalStringValue;
public DateSpinnerItem(){
}
@Override
public String toString() {
return Label;
}
}
这样,我就可以将 DataSpinnerItems 添加到适配器中,并且由于 toString() 覆盖,它为我显示了代表添加的对象的标签!
我有一个名为 spinnerItems 的数组,其中填充了 DateSpinnerItem 类型的对象。我将它传递给 Spinner 使用的适配器。
我的 DataSpinnerItem 对象具有三个属性:Label、Date1 和 Date2。
我的问题是,有没有办法将它们添加到适配器,但在选项中只显示 object.Label?
我的 DataSpinnerItem class:
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
提前致谢!
找到解决办法了!其实比我想象的要简单很多。
只需将 toString 方法从我的自定义 class (DataSpinnerItem) 覆盖到 return 标签:
public class DateSpinnerItem {
public String Label;
public Date dateInicioStringValue;
public Date dateFinalStringValue;
public DateSpinnerItem(){
}
@Override
public String toString() {
return Label;
}
}
这样,我就可以将 DataSpinnerItems 添加到适配器中,并且由于 toString() 覆盖,它为我显示了代表添加的对象的标签!