java - 如何直接将 XML 中的字符串放入 java 数组中

标签 java android arrays xml string

我有一个要开始的 Activity 。它有一个数组,我想包含 strings.xml 中的字符串。此外,我有一个按钮,单击该按钮会将 TextView 的文本更改为数组中的下一个元素。所以我希望每次单击按钮后 TextView 中的文本都会发生变化。文本来自数组。但是我无法使用以下代码让数组从 strings.xml 获取字符串:

getString(R.string.word_1)

我的 strings.xml 如下所示:

<resources>
<string name="app_name">Name</string>
<string name="word_1">First</string>
</resources>

该数组所在的 Activity 具有以下代码:

public class DisplayMenuActivity extends AppCompatActivity {

Button nextButton;
TextView word;

public String list[] = {getString(R.string.word_1)};
private int listNumber = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_menu);



    //Word
    word = (TextView) findViewById(R.id.word);
    word.setText(list[0]);

    //Button
    nextButton = (Button) findViewById(R.id.nextButton);
    nextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            listNumber++;
            if (listNumber >= list.length) {
                listNumber = 0;
            }
            word.setText(list[listNumber]);
        }
    });
}}

例如,当我将 getString(R.string.word_1) 替换为“First”时,它确实有效,但我想从 XML 文件中调用单词而不是对它们进行硬编码。所以问题出在从 XML 调用 String 上,我在互联网上寻找解决方案,但它们都不起作用。有人知道我做错了什么吗?感谢您查看正在寻找的人。我很感激。

最佳答案

您正在寻找一个字符串数组,并且您可以在onCreate内或之后访问资源

保存在 res/values/strings.xml 的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

此应用程序代码检索字符串数组:

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array)

来源:https://developer.android.com/guide/topics/resources/string-resource.html

关于java - 如何直接将 XML 中的字符串放入 java 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090100/

相关文章:

java - Eclipse RCP Spring 集成错误

java.lang.StringIndexOutOfBoundsException : String index out of range: 6 (in. java.lang.String)

android - 使用自定义适配器监听 ListView 上的点击

android - 当另一个 Activity 启动时,Phonegap 应用程序将关闭。为什么?

c - 访问数组内容的可疑语法

c - 在 C 中将字符串存储到 Char 数组中 & 段错误

java注释处理器与grails

java - 无法移除组件并重新绘制

android - 所有主流浏览器(window、android、ios、mac)都支持 flash 吗?

php - 格式化关联数组声明