1

私はテキストビューに情報を表示することに取り組んでいます。それぞれに情報のリストを含む 2 つのテーブルがあります。「テーブル A」ボタンをクリックすると最初の情報が表示され、もう一度クリックすると 2 番目の情報が表示されます。次に、「テーブル b」ボタンをクリックすると、b の 1 番目の情報が表示され、クリック数が増加するにつれて増加します。しかし、「table a」ボタンをもう一度クリックすると、3 番目の情報ではなく 2 番目の情報が表示されるはずです。私はそれを行う方法がわかりません。私を助けてください。私は新しいです。そのための私のコードは次のとおりです

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」をクリックすると、2 番目に表示されます。「テーブルb」から「テーブルa」に戻ったら、最初の情報を表示したい。いくつかの提案をしてください。

4

1 に答える 1

0

Java はデフォルトでゼロベースであるため、配列をリセットする場合は、値を 1 ではなく 0 に設定する必要があります。

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

私が理解しているように、テーブル A に戻す場合は、以前にテーブル A に表示されていたものと同じものを表示したいと考えています。これを行う最善の方法は、アクティブな状態を追跡し、アクティブな状態が現在のものである場合にのみ値を変更することです。これを行う最善の方法は、ある種の列挙型を使用することです。このコードは、TABLE_SELECTED だけでなく TABLE_SELECTED.A を使用するなど、数週間の調整が必要になる場合がありますが、そのような調整を行っても機能するはずです。

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();
于 2013-11-05T19:12:24.013 に答える