java - 可变地访问资源 "R.string"

标签 java android parsing android-resources

在我的 R.string 文件中,我有一些问题 = R.string.question1、R.string.question2 等。

当用户单击按钮时,只有一个数字作为文本,我想提取该数字(num)并访问正确位置的字符串(R.string.question[num])

OnClickListener clickQuestion2 = new OnClickListener(){

    @Override
    public void onClick(View arg0) {
        String num = "R.string"+".question"+((Button)arg0).getText().toString();
        int myQuestion = Integer.parseInt(num);
        question.setText(myQuestion);
        int myOption1 = R.string.question2_1;
        int myOption2 = R.string.question2_2;
        int myOption3 = R.string.question2_3;
        int myOption4= R.string.question2_4;
        option1.setText(myOption1);
        option2.setText(myOption2);
        option3.setText(myOption3);
        option4.setText(myOption4); 

这是按钮的 onClickListener。我尝试了几种方法,但似乎没有任何效果。例如,该错误告诉我“R.string.question2”是一个无效字符串。所以我知道我正在向它传递我想要的资源的字符串,我只是不知道如何告诉它我希望它读取该字符串,找到该资源并解析它附带的 int。与

基本相同
int myOption1 = R.string.question2_1;

是的。这些是从 R.string.question(x) 中提取的问题的可能答案,并且这些答案有效。如何获取资源的 int,但每次单击按钮时都会更改资源。

如果这是有道理的,感谢您的帮助!

编辑:“question”是一个 TextView 以及 option1、option2 等。

最佳答案

String dynamicString = "question2_1";
int resID = getResources().getIdentifier(dynamicString, "string",  activity.getPackageName()); 
String result = activity.getResources().getString(resID);

关于java - 可变地访问资源 "R.string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222475/

相关文章:

java - Android 的枚举状态模式

python - 如何在Python框架Scrapy中从页面解析RSS链接(获取RSS的url)?

javascript - 已到达字符串末尾,但未找到右括号 : NodeJS & Jade

java - 如何在使用 ImageIO.read() 时解决 'java.io.EOFException: Unexpected end of ZLIB input stream'

java - 如何在 Android 中复制无法解析的日期错误?

android - Gradle找不到org.gradle.configureondemand

python - 寻找使用python优化文本解析速度的实用解决方案

java - 无法从 Cmd 类型对非静态方法 getVideoURL() 进行静态引用

java - 是否可以让多个线程监听同一个 DatagramSocket?

android - WakefulBroadcastReceiver 不会将设备从深度 sleep 中唤醒