0

ボタンを初めてクリックすると、背景画像が変更されます。次に、ボタンをもう一度クリックすると、最初の背景が表示されます。グローバルにフラグを設定してから、ボタンをクリックしてフラグカウンターをインクリメントします。しかし、最初にクリックすると何も起こりませんが、2回目にボタンが新しい画像を取得します。

希望:

最初のクリック: フラグが 0 になる: ボタンはデフォルトの背景を使用します。2 回目のタップ: フラグが 1 になる: ボタンが新しい背景を取得します。フラグは 0 にリセットされます。

1 回目のタップ 0 から 2 回目のタップ 2 回目のタップ 1 => 0 、3 回目のタップ =>0 リセットにする必要があります。

これが私のコードです:

flag++;

switch (flag) {
    case 0:
        cbhead.setBackgroundResource(R.drawable.cbxbox);
        checkValue1 = TAGN;
        System.out.println("flag off : " + checkValue1);
        break;
    case 1:
        cbhead.setBackgroundResource(R.drawable.cbxboxchecked);
        checkValue1 = TAGN;
        System.out.println("flag on: " + checkValue1);
        flag = 0;
        break;
}
4

2 に答える 2

2

ケース0内でフラグをインクリメントするだけです:

flag=0;
switch (flag) {
    case 0:
        cbhead.setBackgroundResource(R.drawable.cbxbox);
        checkValue1 = TAGN;
        System.out.println("flag off : " + checkValue1);
    flag++;
        break;
    case 1:
        cbhead.setBackgroundResource(R.drawable.cbxboxchecked);
        checkValue1 = TAGN;
        System.out.println("flag on: " + checkValue1);
        flag = 0;
        break;
}
于 2013-06-20T14:20:38.823 に答える
0

これは、switch ステートメントの前にフラグをインクリメントしているためです。したがって、0 から始まる場合、ボタンを押すと、switch ステートメントに入る前にインクリメントされます。

于 2013-06-20T14:18:15.540 に答える