同じボタンを連続してクリックするイベントを回避したい(つまり、同じボタンを連続してクリックする)
可能か不可能か
はい、さまざまな方法で可能です:
1)最初の方法:ブール変数を使用し、必要に応じて更新します:
boolean isClickable = true;
Button btn;
// other declarations..
// onCreate メソッド内:
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
onClick()
方法 :
@Override
public void onClick(View v) {
if(isClickable) {
//this code will be executed only when you set the boolean isClickable to true
//your code here
}
}
非アクティブ化する場合は、ボタンをクリックします。ブール値を false に設定するだけです:
isClickable = false;
2) 2番目の方法:
View には、ボタンを Clickable にしないメソッドがあります。次に、ボタンのリスナーを非アクティブ化して、オブジェクトが次のようにボタンをクリックしてイベントをリッスンしないようにします。
btn.setClickable(false);
btn.setOnClickListener(null);
注:ボタンを再度クリック可能にしたい場合は、リスナーをこれに設定し、再度クリック可能にします (2 番目の方法の場合):
btn.setClickable(true);
btn.setOnClickListener(this);
または、ブール値 isClickable の値を更新するだけです(最初のメソッドの場合)
isClickable = true;
このイベントの処理を無効にする場合は、onClickListener を null に設定し、再度有効にするために以前と同じリスナーに戻すことができます。
もちろん、Houcine が書いているように、これには多くの解決策があります。