将String从Java类迁移到资源

时间:2017-07-15 18:48:46

标签: java android string android-resources

我在测验问题中工作。

我有" Questions.java"

package com.example.luisbalmant.quickquiz_science;

import android.widget.TextView;

/**
 * Created by LuisBalmant on 15/07/2017.
 */

public class Questions {
    public String mQuestions[] = {
            "My question here",


    };
}

我尝试使用" strings.xml"的字符串语言。在"我的问题在这里"。

例如:

<string name="Q1_function_insulin">What is the function of insulin?</string>

我正在尝试这个:

getString(R.string.Q1_function_insulin),

有人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

如果我的问题是正确的,我假设您要加载strings.xml文件中的所有问题并将它们放在mQuestions数组中。你在那里写的(getString(R.string.Q1_function_insulin))应该没有任何问题。我建议您将所有问题放在xml中的数组中,并使用getStringArray(R.array.questions)一次加载整个数组。

答案 1 :(得分:0)

您需要Context个对象才能执行getString()。因此,您可以这样重构您的课程:


    public class Questions {

        private static final int QUESTIONS[] = {
                R.string.text1,
                R.string.text2
        };

        private Context context;

        public Questions(Context context) {
            this.context = context;
        }

        public String getString(int index) {
            return context.getString(QUESTIONS[index]);
        }
    }

然后,从您的活动开始:

Questions questions = new Questions(MainActivity.this);
questions.getString(0);