java - 将字符串资源 ID 数组与 ListAdapter 一起使用吗?

标签 java android listactivity

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

相关文章:

android - ArrayAdapter.setNotifyOnChange 工作不正常

java - 如何在 Fitnesse 页面中传递任意对象?

android - 区分Android上的开发模式和 Release模式环境设置

java - Android:将 CheckBox 添加到 ListAdapter

java - android的ListActivity类什么时候调用setContentView()?

Android - 故意快速耗尽电池

java - 使用第一个元素作为枢轴的快速排序

java - Spring Security jdb通过组进行身份验证

Java:使用多个线程同时在 JPanel 上绘制

android - 在根项目 'continue'中找不到任务 'Demo2'