所以我有一个类似于......的枚举。
package com.example.manageyobudget.model;
public enum FilingStatus {
//TODO: Would changing these texts to static or values help?
MARRIED("2:married", "Married"),
SINGLE("1:single", "Single"),
HEAD_OF_HOUSEHOLD("3:Head of Household", "Head of Household"),
SUPPLEMENTAL("4:Supplemental","Supplemental");
private String val;
private String text;
private FilingStatus(String val, String text){
this.val = val;
this.text = text;
}
public String getVal(){
return this.val;
}
public String getText(){
return this.text;
}
public static String[] getTexts(){
int count = FilingStatus.values().length;
String[] values = new String[count];
for(FilingStatus e : FilingStatus.values()){
values[count--]=e.text;
}
return values;
}
}
现在我想创建一个微调器,我希望ArrayAdapter成为枚举,而我希望显示文本是text属性的值。在另一个我翻译听众的价值,所以我认为我需要类似的东西......
Spinner filestat = (Spinner)rootView.findViewById(R.id.filestat);
filestat.setAdapter(new ArrayAdapter<FilingStatus>(this.getActivity(),
android.R.layout.simple_list_item_1,
FilingStatus.values()));
filestat.setOnItemSelectedListener(this);
但是这会使用序号作为微调器中显示的值。我怎样才能使它成为文本属性?我是否需要创建一个基于Text查找枚举的方法?这似乎是很多开销。
答案 0 :(得分:2)
你不能只重写枚举上的toString()
方法,并返回你想用作显示值的任何值。