使用ListAdapter的字符串资源ID数组?

时间:2014-03-16 18:48:14

标签: java android listactivity

我有一个类“EditableListItem”数组,每个类都包含一个字符串资源ID。我想创建一个包含所有这些字符串值的列表。问题是我列表中的项目最终显示的是资源ID而不是实际的字符串。

Class 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?

2 个答案:

答案 0 :(得分:0)

您可以使用

getResources().getString(R.string.yourstring)

获取字符串资源的字符串值

答案 1 :(得分:0)

ArrayAdapter将使用.toString()方法显示文字。

覆盖它并使用getString(title_id)来获取字符串(您将需要上下文)。

你可以:

  • 创建私人字段String stringRapp
  • 编辑构造函数以获取上下文
  • 使用此上下文并执行stringRapp = context.getString(title_id);

如果您确定资源ID永远不会更改,并且将始终引用相同的字符串。

如果不是:

  • 从构造函数中获取上下文
  • 将其保存在字段Context context
  • .toString()方法中,return context.getString(title_id)