我正在制作有关textview的信息。我有两个表,每个表都包含信息列表。如果我点击“表格A”按钮,它会显示第一个信息,如果我再次点击它,它会显示第二个信息。然后,如果我单击“表b”按钮,则显示b的第一个信息,并随着点击次数的增加而增加。但是,如果我再次单击“表格”按钮,则必须显示第二个信息,而不是第三个信息。我不知道怎么做那个。请帮我。我是新的。我的代码如下:
case "table a":
if (j>4) {
j=1;
}
text.setText(String.valueOf(j));
j++;
Toast.makeText(getApplicationContext(),
"A table information", Toast.LENGTH_SHORT).show();
break;
case "table b":
if (i>6) {
i=1;
}
text.setText(String.valueOf(j));
i++;
Toast.makeText(getApplicationContext(),
"B table information", Toast.LENGTH_SHORT).show();
break;
我面临的问题是,如果我点击“表格a”。它显示了第一个信息。然后,如果我点击“表b”,它会显示表b的第一个信息。然后,如果我点击“表格a”,它显示第二个。如果我从“表格b”回到“表格a”,我希望它显示第一个信息。请给出一些建议。
答案 0 :(得分:0)
默认情况下,Java基于零,因此如果重置数组,则应将值设置为0,而不是1。
if(j>4){
j=0;
}
根据我的理解,如果你切换回它,你想要显示之前在表A上显示的相同的东西。执行此操作的最佳方法是跟踪活动状态,并仅在活动状态为当前状态时更改值。这样做的最好方法是使用某种枚举。这段代码可能需要几个tweek,比如使用TABLE_SELECTED.A而不仅仅是TABLE_SELECTED,但它应该可以完成这样的调整。
private enum TABLE_SELECTED{A,B};
TABLE_SELECTED activeTAble=A;
case "table a": if(aIndex>4){
aIndex=0;
}
text.setText(String.valueOf(aIndex));
if(activeTable==A)
aIndex++;
activeTable=A
Toast.makeText(getApplicationContext(), "on clicked", Toast.LENGTH_SHORT).show();
case "table b": if(bIndex>6){
bIndex=1;
}
text.setText(String.valueOf(bIndex));
if(activeTable==B)
bIndex++;
activeTable=B
Toast.makeText(getApplicationContext(), "on clicked", Toast.LENGTH_SHORT).show();