我的if语句不能在我的应用程序中运行

时间:2015-02-02 11:12:38

标签: android

在我的示例代码中,我遇到了问题。我想检查所有if语句,但它只运行最后的If语句(它只运行第一个和最后一个if)。最后我想显示a1-a10。但它不起作用。

这里:我将我的问题ID(qid)与我单位中的第一个问题进行比较。检查用户选择的项目。然后我显示问题并添加我的问题ID(qid)。

    if (qid == unitid) {
        if (rda.isChecked()) {
            a1 = rda.getText().toString();
        }
        if (rdb.isChecked()) {
            a1 = rdb.getText().toString();
        }
        if (rdc.isChecked()) {
            a1 = rdc.getText().toString();
        }
        if (rdd.isChecked()) {
            a1 = rdd.getText().toString();
        }
    }
    currentQ = quesList.get(qid);

    setQuestionView();

QID ++;

然后:我再次为下一个问题做这个过程。

if (qid < unitid + 10) {
{


grp.clearCheck();
currentQ = quesList.get(qid);
setQuestionView();

if (qid == unitid + 1) {
    qid++;
    if (rda.isChecked()) {
        a2 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a2 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a2 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a2 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 2) {
    qid++;
    if (rda.isChecked()) {
        a3 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a3 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a3 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a3 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 3) {
    if (rda.isChecked()) {
        a4 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a4 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a4 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a4 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 4) {
    if (rda.isChecked()) {
        a5 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a5 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a5 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a5 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 5) {
    if (rda.isChecked()) {
        a6 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a6 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a6 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a6 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 6) {
    if (rda.isChecked()) {
        a7 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a7 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a7 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a7 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 7) {
    if (rda.isChecked()) {
        a8 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a8 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a8 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a8 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 8) {
    if (rda.isChecked()) {
        a9 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a9 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a9 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a9 = rdd.getText().toString();
    }
}


currentQ = quesList.get(qid);
setQuestionView();
if (qid == unitid + 9) {
    if (rda.isChecked()) {
        a10 = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a10 = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a10 = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a10 = rdd.getText().toString();
    }
}

但它只显示第一个和最后一个。它不运行其他if语句。

2 个答案:

答案 0 :(得分:0)

如果是String,你应该这样比较:

if(qid.eqlualsIgnoreCase(unitId)){
//code
}

答案 1 :(得分:0)

正如你所说它是String然后你的逻辑是不正确的qid应该是一个整数类型。

if (qid < unitid + 10) {
 for(int i=0; i<10; i++)
 grp.clearCheck();
 currentQ = quesList.get(qid);
 setQuestionView();

 if (qid == unitid + ++i) //if qid is 1 or if qid initialized to 0 put i instead of ++i  
 {
    qid++;
    if (rda.isChecked()) {
        a[i] = rda.getText().toString();
    }
    if (rdb.isChecked()) {
        a[i] = rdb.getText().toString();
    }
    if (rdc.isChecked()) {
        a[i] = rdc.getText().toString();
    }
    if (rdd.isChecked()) {
        a[i] = rdd.getText().toString();
    }
}
currentQ = quesList.get(qid);

setQuestionView();

这只是你可以做的一个例子,但是你需要创建数组并且必须修改许多其他东西。你在if中使用的if应该是一个整数类型。