我有一个类“EditableListItem”的数组,每个类都包含一个字符串资源 id。我想创建一个包含所有这些字符串的值的列表。问题是我的列表中的项目最终显示的是资源 ID,而不是实际的字符串。
类 EditableListItem:
public class EditableListItem {
private int title_id;
public EditableListItem(int title_id) {
this.title_id = title_id;
}
//...
}
我的列表 Activity :
// 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)
来获取字符串(您将需要上下文)。
你可以:
- 创建私有(private)字段
String stringRapp
- 编辑构造函数以获取上下文
- 使用此上下文并执行
stringRapp = context.getString(title_id);
如果您确定资源 ID 永远不会改变,并且始终引用相同的字符串。
如果没有:
- 从构造函数中获取上下文
- 将其保存在字段中
上下文上下文
- 在
.toString()
方法中,返回context.getString(title_id)
关于java - 将字符串资源 ID 数组与 ListAdapter 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22441227/