0

複数のクリック可能なビューを持つアクティビティがあります。それらのいずれかをクリックすると、同じアクティビティ クラスの新しいインスタンスが新しい引数で呼び出されます。

Intent i = new Intent(this, SameActivity.class);
// put extras
startActivity(i);

これは onClick メソッドで行われます。問題は、任意のビューをすばやくダブルクリックすると、新しいアクティビティが開かれていることがわかり、(新しく作成されたアクティビティで) ビューの 1 つをもう一度クリックしたように動作することです。そして、再びナビゲートします。

ログは次のようになります。

onCreate()
onStart()
onResume()
onClick()
onPause()
onCreate()
onStart()
onResume()
onClick()
onCreate()
onStart()
onResume()
onStop()
onStop()

なぜ、どのように回避するのですか?

編集: setEnabled(false) を使用してみましたが、効果はありませんでした。

さらに、私のさらなるテストでは、新しく作成されたビューによって onClick が実際にトリガーされることが示されました。デバイスのせいでしょうか?応答が遅すぎるか、それとも?

4

1 に答える 1

4

まず第一に、これを行う正当な理由があることを本当に願っています...同じことActivityを別のものの上に始めることは、私の意見では無意味に聞こえるからです。

次に、XML で開始するボタンが無効になっていることを確認しながら、myButton.setEnabled(false)inonPauseおよびmyButton.setEnabled(true)inを呼び出すことができます。onResume

于 2012-07-24T15:12:20.923 に答える