我有一个类“ 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)

09-15 11:37