从Res调用不同的String到.java

时间:2014-10-04 16:22:01

标签: android string

首先,我是android的新手。我试图对android做一个调查。我的问题是,我希望在选择单选按钮时出现下一个问题和可能的答案,并且对于我所有的问题都是一样的。我使它功能,但不小心我擦除了项目。这是我开发的代码

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;


public class MainActivity extends Activity {

    TextView texto1;
    TextView texto2;
    RadioGroup Selecopc;
    int i=1;
    private TextView num;
    private TextView pregu;
    private TextView rep1;
    private TextView rep2;
    private TextView rep3;


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

        num = (TextView)findViewById(R.id.Numero);
        pregu = (TextView)findViewById(R.id.Pregunta);
        rep1 = (TextView)findViewById(R.id.Respuesta1);
        rep2 = (TextView)findViewById(R.id.Respuesta2);
        rep3 = (TextView)findViewById(R.id.Respuesta3);

        Selecopc = (RadioGroup)findViewById(R.id.opcion);

        Selecopc.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){   

        public void onCheckedChanged(RadioGroup group, int checkedId)
        {
            i++;    
            String n = String.valueOf(i);
            num.setText(n);
            String pregseg ="R.string."+"preg"+i;
            pregu.setText(pregseg);         
        }

        });


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="action_settings">Settings</string>
    <string name="numero">1</string>
    <string name="preg1">Cua...</string>
    <string name="preg2">Cu..</string>
    <string name="preg3">...</string>
    <string name="preg4">...</string>
    <string name="preg5">...</string>
    <string name="preg6">...</string>

1 个答案:

答案 0 :(得分:0)

字符串id资源名称只是一个静态字段。我想你可以用反射来做到这一点,但在你的情况下它并不是更好的选择。更好的方法是预定义标识符数组并使用它们。样品:

private int[] pregs = new int[]{
        R.string.preg1,
        R.string.preg2,
        R.string.preg3
};

稍后使用它:

public void onCheckedChanged(RadioGroup group, int checkedId)
{
    i++;
    String n = String.valueOf(i);
    num.setText(n);
    pregu.setText(pregs[i]);
}