5

ではAndroid、ユーザーがボタンを複数回押すと、onClickイベントが複数回発生します..これは理にかなっています。

onClickメソッドが新しい を開始する場合Activity、ユーザーは同じものActivityを複数回開くことができ、 の各インスタンスがActivityスタックの一番上に積み上げられます。

通常、メソッド内のボタン (ボタンに関連付けられている) を無効にし、とonClickを使用して数秒後に再度有効にします。HandlerpostDelay

私はこの方法でそれを行うのが本当に好きではないので、この問題にもっときれいな方法でアプローチする別の方法はありますか?

4

3 に答える 3

1

アクティビティの場合、インテントに追加を渡すこともできます。

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

また

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

複数の起動を避けるため。

他の方法は、複数のクリックを防ぐクリックを管理している間にダミーのブール値を持つことです。

例で更新:

boolean processingClick = false;
Button b = new Button();
b.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
        if (!processingClick) {
            processingClick = true;

            //your code here

            processingClick = false;
        }
    }
});
于 2012-12-17T10:48:15.023 に答える
0

きれいな方法:

ボタンをクリックした後、呼び出したいものが の場合はnull呼び出し、そうでない場合は呼び出しません。

于 2012-12-17T10:45:54.190 に答える