2

現在、Android アプリを少しコーディングしていて、複数のボタンに関する奇妙な問題を発見しました。4 つのボタンがあるアクティビティがあります。一度に複数のボタンを押すと、両方のアクションが実行されます。したがって、4 つのボタンをすべて押すと、次の 4 つのアクティビティがすべて開始されます。

これは私のonButtonClick-Methodです

public void onButtonClick(View view) {
    Intent intent = new Intent(this, RunActivityConfirm.class);

    switch(view.getId()) {
        case R.id.btnRunAcceleration:
            intent.putExtra("DisciplineName", "Acceleration");
            startActivity(intent);
            break;
        case R.id.btnRunSkidPad:
            intent.putExtra("DisciplineName", "Skid Pad");
            startActivity(intent);
            break;
        case R.id.btnRunAutocross:
            intent.putExtra("DisciplineName", "Autocross");
            startActivity(intent);
            break;
        case R.id.btnRunEndurance:
            intent.putExtra("DisciplineName", "Endurance");
            startActivity(intent);
            break;
    }

}

最初に、問題はすべての「ケース」で常に startActivity() を呼び出すことだと思いましたが、次の4つのアクティビティすべてを同時に開始しようとしても

public void onButtonClick(View view){   
    Intent intent = new Intent(this, RunActivityConfirm.class);

    switch(view.getId()) {
        case R.id.btnRunAcceleration:
            intent.putExtra("DisciplineName", "Acceleration");
            break;
        case R.id.btnRunSkidPad:
            intent.putExtra("DisciplineName", "Skid Pad");
            break;
        case R.id.btnRunAutocross:
            intent.putExtra("DisciplineName", "Autocross");
            break;
        case R.id.btnRunEndurance:
            intent.putExtra("DisciplineName", "Endurance");
            break;
    }
    startActivity(intent);
}

これは私のアプリ全体で発生します。どのボタンを押しても、関連するすべてのアクションが実行され、関連するすべてのアクティビティが開始されます。

私にできることはありますか?

4

2 に答える 2

2

一度に複数のボタンを押すと、両方のアクションが実行されます。

これは予期される動作です。ボタンが押されると、コードはアクティビティを開始します。複数のボタンが押されるため、複数のアクティビティが開始されます。

ボタンを 1 つだけ押すことができるようにこれを変更する場合は、そのためのコードを追加する必要があります。の他のボタンを無効にすることができますonButtonClick(必要に応じて再度有効にします)。

于 2013-01-22T20:46:01.023 に答える
0

これは同じアクティビティ追加であるため

android:finishOnTaskLaunch="true" 

アクティビティタグの下のマニフェストで。同じアクティビティの複数のインスタンスを作成するのを防ぎます。

于 2013-01-22T20:46:40.140 に答える