gpt4 book ai didi

Android getResources().getStringArray() 变量

转载 作者:IT老高 更新时间:2023-10-28 23:18:30 44 4
gpt4 key购买 nike

我有一个 xml 文件,其中有字符串和字符串数组。我有一个类,我点击一个列表项,而在另一个类中,我列出了其他项目。在 xml 中有字符串,其名称是单击的项目修改名称,值是字符串数组名称。我找到了一个解决方案,如何将变量添加到 getResources(9.getStringArray() 但它不起作用。程序启动,但是当我单击任何列表项时,我的 Activity 停止工作。我的类(class)文件:

String artistpicked = extras.getString("artist");
String[] firstW = artistpicked.split(" ");
firstW[0] = firstW[0].trim();
String albumSearch = firstW[0] + "_code";
int getRes = getResources().getIdentifier(albumSearch, "string", getPackageName());
String setRes = String.valueOf(getRes);
int getRes2 = getResources().getIdentifier(setRes, "array", getPackageName());
String[] albums = getResources().getStringArray(getRes2);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, albums));
TextView t = (TextView) findViewById(R.id.albumName);
t.setText(setRes);

TextView 用于检查变量。专辑搜索给出了“modifiedartistpicked_code”,很好。 getRes 给出来自 xml 的值(“something_array”),setRes 给出它的实际 id 号(getStringArray 需要)。 getRes2 提供与 getRes 相同的功能,只是用来检查它是否正常工作。当我注释掉接下来的两行,String albums[] 和 setListAdapter 时,程序可以工作,但它没有列出项目。

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="artists_array">
<item>code1 example</item>
<item>code2 example</item>
</string-array>
<string-array name="code1_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="code2_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string name="code1_code">code1_array</string>
<string name="code2_code">code2_array</string>
</resources>

我希望我能写出我想做的事,有什么问题:)

更新:

@Marc Bernstein:因为我不知道它是 code1_array。首先,我做了很多,如果挑选的项目为x,然后我读了r.array.x_array等...

但我知道问题出在哪里,xml 中字符串的名称中有大写字母。这就是我讨厌 xml 的原因,问题总是存在 :) 这个 xml 只是一个例子,原来的要大得多,这就是为什么没有人能够提供帮助的原因。下次我会更加谨慎。

而且我现在让它变得更简单了,因为你说得对,它太复杂了。

最佳答案

罪魁祸首很可能

String[] albums = getResources().getStringArray(getRes2);

而不是做

int getRes2 = getResources().getIdentifier(setRes, "array", getPackageName());
String[] albums = getResources().getStringArray(getRes2);

为什么不直接使用

String[] albums = getResources().getStringArray(R.array.code1_array);

?

无论如何,从您发布的内容来看,我认为“数组”标识符实际上并不存在于您的 strings.xml 文件中。我看到一个 code1_array 和 code2_array。

关于Android getResources().getStringArray() 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5705020/

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