java - 如何将Android字符串数组加载到ListView中?

标签 java android arrays string listview

我正在尝试在 Android 中构建我的第一个 ListView,为此我正在构建一个自定义 ListAdapter。所以我创建了一个名为NotificationsAdapter 的类,它扩展了BaseAdapter。由于我希望能够将字符串翻译成其他语言,因此我在 strings.xml 中创建了一个字符串数组:

<string-array name="notifications_string_array">
    <item>The first item</item>
    <item>The second item</item>
    <item>Number three</item>
    <item>Numero four</item>
</string-array>

除了显示此列表中的项目之外,我还希望能够单击每个项目。这应该创建一个 Intent ,让用户进入下一个屏幕(始终相同),我必须给出一个 putextra,以便我知道在下一个 Activity 中用户单击了哪个项目。此外,我想在列表项旁边放置一个自定义图标。

在我的适配器中,我有一个构造函数,可以在其中加载 notification_string_array,如下所示:

int theStringArray = R.array.notifications_string_array;

然而,这只是字符串数组的 id。 所以第一个问题;如何加载整个数组?

然后我需要在 View 中加载数组,我尝试这样做:

@Override
public View getView(final int position, View convertView, ViewGroup viewGroup) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.list_item_notifications, viewGroup, false);
    TextView textView = (TextView) rowView.findViewById(R.id.text_notification);
    textView.setText(theStringArray[position]);
}

这是严重错误的,因为“theStringArray”根本不是一个字符串数组,而只是一个引用字符串数组的 int 。我想这可以通过回答我的第一个问题来解决。

但是,从现在开始,我不知道如何添加一个 Intent ,我可以根据用户单击的项目给出 .putextra 。最后,如何为每个项目赋予自己的图标?我应该在哪里存储此图标列表以及如何将其映射到正确的项目?

如果有人能启发我,我将不胜感激!

最佳答案

这是加载字符串数组的方式:

final String[] theStringArray = getResources().getStringArray(R.array.notifications_string_array);

关于java - 如何将Android字符串数组加载到ListView中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21119197/

相关文章:

android - dot42:为原始资源(mp3 文件)调用 SoundPool.Load 方法时抛出异常

android - 无法使用模块编译项目

javascript - 将值从 JSON 对象推送到数组并使用外部函数

javascript - 如何修复 data.map 而不是函数 api

java - Jaxb 在解码时忽略 namespace

java - 忽略转义 - Java

java - 绘制 JPanel 的背景

java - base64 到文件响应不起作用

android - AdMob 收入和替代方案 : Impression vs Clicks

arrays - 更改数组Delphi中的特殊字符