0

だから私はAndroidが初めてで、さまざまなボタンを持つこの小さなアプリを持っています。ボタンはさまざまなことを行いますが、特に興味深いのは、別のアクティビティを意図するボタンです。

喜んでプログラミングとテストを行っていると、これらのボタンをダブルタップ、場合によってはトリプルタップできることがわかったからです。

ボタンを許可するクリック数を指定したり、クリック後にボタンを (短時間でも) 無効にするかどうかを指定できる Button オブジェクトのメソッドを探します。そのようなものは何も見つかりません。

信じられないことに、私はこの奇妙な振る舞いについてのハイレベルな議論を求めてグーグルを始めました。アプリのすべてのボタンで問題を処理する方法についての提案だけで、興味深い議論は見つかりません。

ため息をつきながら、プロジェクトの時間の要求に屈し、プライベート変数をアクティビティに追加します (Java では静的ローカルはありません。がらくたです)。これは、クリック処理メソッドがボタン クリックの処理で既にビジーであるかどうかを判断するために使用します。 .

しかし、それでも私は疑問に思います。Androidのボタンイベントは本当に明示的に無効にする必要がありますか?

編集:「はい(またはいいえ)、Xのため明示的に無効にする必要があることはわかっています」という形式の回答を探しています。

4

2 に答える 2

1

プラットフォームは、ボタンのクリックを 1 回だけ許可することや、クリックできる頻度を想定することはできません。クリックしたボタンを無効にするロジックを追加するだけです。

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick (View v) {
        v.setEnabled(false);
        //Do other stuf
    }
});
于 2013-09-07T18:05:08.637 に答える
0

droidQueryを使用して、最初のクリック イベントを処理するようにボタンまたはボタンのセットを設定し、それ以降のクリック イベントは処理しないようにすることができます。例えば:

$.with(button).one("click", new Function() {
    @Override
    public void invoke($ d, Object... params) {
        //Do stuff - this will only happen on the first click event
    }
});
于 2013-09-07T18:19:10.183 に答える