在我的示例代码中,我遇到了问题。我想检查所有的if语句,但它只运行最后的if语句(它只运行第一个和最后一个if).and,最后我想显示a1-a10。但它不起作用。
这里:我将我的问题id(qid)与我的unit.and中的第一个问题进行比较,检查用户select.then显示的条目,然后添加我的问题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。它不会运行另一个if语句。
发布于 2015-02-02 11:23:14
如果是字符串,则应进行如下比较:
if(qid.eqlualsIgnoreCase(unitId)){
//code
}
发布于 2015-02-02 11:29:38
正如你所说的,它是字符串,那么你的逻辑是错误的,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中使用的应该是整数类型。
https://stackoverflow.com/questions/28276462
复制相似问题