在我的示例代码中,我遇到了问题。我想检查所有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语句。
答案 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应该是一个整数类型。