繁体   English   中英

暂时储存价值

[英]Store value temporarily

我正在显示有关textview的信息。 我有两个表,每个表包含信息列表。 如果单击“表A”按钮,它将显示第一个信息,如果再次单击它,它将显示第二个信息。 然后,如果我单击“表b”按钮,则会显示b的第一信息,并且该信息随着点击次数的增加而增加。 但是,如果我再次单击“表a”按钮,则它必须显示第二个信息,而不是第三个信息。 我不知道该怎么做。 请帮我。 我是新的。 我的代码如下

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”,它将显示2nd。 如果我从“表b”回到“表a”,我希望它显示第一信息。 请给一些建议。

Java默认情况下基于零,因此,如果您重置数组,则应将值设置为0,而不是1。

if(j>4){
   j=0;
}

据我了解,如果您切换回表A,则希望显示与表A相同的内容。 最好的方法是跟踪活动状态,并且仅在活动状态为当前状态时才更改该值。 最好的方法是使用某种枚举。 这段代码可能需要几个星期的时间,例如使用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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM