gpt4 book ai didi

java - 根据 if else 语句更改字符串数组项

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:28 24 4
gpt4 key购买 nike

我使用这个字符串数组作为 ListView 数组来显示在抽屉导航中。

<string-array name="navItems">
<item>Character 1</item>
<item>Character 2</item>
<item>Character 3</item>
<item>Character 4</item>
<item>Character 5</item>
<item>Character 6</item>
<item>Character 7</item>
<item>Character 8</item>
<item>Character 9</item>
<item>Character 10</item>
</string-array>

我希望用户能够通过输入每个角色的名称来更改这些项目,类似于将标题更改为相应角色的名称的方式。 (见下文)

if (pref.contains("name")) {
getActionBar().setTitle(pref.getString("name", "Character 1"));
} else {
getActionBar().setTitle("Character 1");
}

是否有办法以编程方式更改这些数组项,以便在用户命名角色时可以更改它们?

感谢您的宝贵时间。

最佳答案

您无法修改 getResources().getStringArray(R.id.navItems) 返回的内容。这些值是固定的。但您可以将修改后的信息存储在共享首选项中

由于首选项是键值存储,因此您需要定义键的工作方式。仅 "name" 不足以存储 10 个不同的名称。
一种常见的方法是定义 2 个数组,一个包含键,一个包含自定义翻译文本。两者的长度必须相同。

<string-array name="navItemKeys">
<item>char_1</item>
<item>char_1</item>
...

然后将自定义名称保存在这些键下。要加载适配器的名称数组,您可以执行类似的操作

String[] loadArray(Context context, SharedPreferences prefs) {
String[] defaultNames = context.getResources().getStringArray(R.array.navItems);
String[] lookupKeys = context.getResources().getStringArray(R.array.navItemKeys);

String[] result = new String[defaultNames.length];

for (int i = 0; i < lookupKeys.length; i++) {
String lookupKey = lookupKeys[i];
String defaultName = defaultNames[i];
result[i] = prefs.getString(lookupKey, defaultName);
}

return result;
}

关于java - 根据 if else 语句更改字符串数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27140298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com