Android Java:无法解析已经声明的符号

时间:2014-11-20 19:54:40

标签: java android android-studio

我有这部分代码:

    final String[] qst = getResources().getStringArray(R.array.q1);
    qt.setText(qst[0]);
    respA.setText(qst[1]);
    respB.setText(qst[2]);
    respC.setText(qst[3]);
    respD.setText(qst[4]);

它运行没有问题。我想在strings.xml中获取一个带有多个选择问题的数组。问题是我想要一个随机的问题,在屏幕上呈现。 我认为最好的解决方案是随机化一个int并选择一个问题作为整个函数(因为我是一个菜鸟大声笑)。但是当我尝试代码时

    final int iqst = 1;
    if (iqst == 1) {
        final String[] qst = getResources().getStringArray(R.array.q1);
    }
    qt.setText(qst[0]);
    respA.setText(qst[1]);
    respB.setText(qst[2]);
    respC.setText(qst[3]);
    respD.setText(qst[4]);

android studio给出错误: 错误:(113,20)错误:找不到符号变量qst。

我已经在互联网上搜索但我不知道为什么我不能在if

中声明一个数组

2 个答案:

答案 0 :(得分:0)

你在内部声明qst。它在if块

之外无效

答案 1 :(得分:0)

变量qst在if块的范围内。如果阻止你声明它的方式,它只能在其中访问。我这样做的一种方法是在外面宣布它,比如说

final int iqst = 1;
String[] qst = null; 
if (iqst == 1) {
    qst = getResources().getStringArray(R.array.q1);
}
qt.setText(qst[0]);
respA.setText(qst[1]);
respB.setText(qst[2]);
respC.setText(qst[3]);
respD.setText(qst[4]);