我有一个类“ EditableListItem”的数组,每个数组包含一个字符串资源ID。我想用所有这些字符串的值创建一个列表。问题是我列表上的项目最终显示的是资源ID,而不是实际的字符串。
类EditableListItem:
public class EditableListItem {
private int title_id;
public EditableListItem(int title_id) {
this.title_id = title_id;
}
//...
}
我的清单活动:
// Instantiate the list of samples.
EditableListItem[] allItems = new EditableListItem[]{
new EditableListItem(R.string.dialer),
new EditableListItem(R.string.clock)
};
setListAdapter(new ArrayAdapter<EditableListItem>(this, android.R.layout.simple_list_item_1, android.R.id.text1, allItems));
如何使我的列表显示字符串值而不是其ID?
最佳答案
ArrayAdapter
将使用.toString()
方法显示文本。
覆盖它,并使用getString(title_id)
获取字符串(您将需要上下文)。
你可以:
创建一个私有字段String stringRapp
编辑构造函数以获取上下文
使用此上下文并执行stringRapp = context.getString(title_id);
如果您确定资源ID不会改变,并且将始终引用相同的字符串。
如果不:
从构造函数中获取上下文
将其保存在Context context
字段中
在.toString()
方法中,return context.getString(title_id)