如何避免多次点击按钮的同时Android的?按钮、Android

2023-09-05 02:36:24 作者:▁▁X灬奶茶、

我使用的视图中的两个按钮。同时单击两个Button同时它会去不同的活动的时间。如何避免这种情况?

I'm using two button in view. While clicking two button simultaneously it will goes to different activity at a time. How to avoid this?

我已经试过这样,但它不工作,请保存....

I have tried like this, But its not working please save....

public class MenuPricipalScreen extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu_principal_layout);


    findViewById(R.id.imageView2).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            disable(findViewById(R.id.imageView3));

            Intent intent = new Intent(MenuPricipalScreen.this,
                    SelectYourLanguageVideo.class);
            startActivity(intent);
        }
    });
    findViewById(R.id.imageView3).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            disable(findViewById(R.id.imageView2));

            Intent intent = new Intent(MenuPricipalScreen.this,
                    CategoryScreen.class);
            intent.putExtra("request", "false");
            startActivity(intent);
        }
    });

}

 @Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    ((ImageView) findViewById(R.id.imageView3)).setEnabled(true);
    ((ImageView) findViewById(R.id.imageView2)).setEnabled(true);
    ((ImageView) findViewById(R.id.imageView3)).setClickable(true);
    ((ImageView) findViewById(R.id.imageView2)).setClickable(true);
    ((ImageView) findViewById(R.id.imageView3)).setFocusable(true);
    ((ImageView) findViewById(R.id.imageView2)).setFocusable(true);
}

 private void disable(View v) {
    Log.d("TAG", "TAG" + v.getId());
    v.setEnabled(false);
    v.setClickable(false);
    v.setFocusable(false);
}
}

谢谢

推荐答案

标准的方式,以避免多次点击是保存最后点击的时间,避免在1秒内(或时间跨度)其它按钮的点击。 示例 -

The standard way to avoid multiple clicks is to save the last clicked time and avoid the other button clicks within 1 second(or any time span). Example-

// Make ur activity class to implement View.OnClickListener
  public class MenuPricipalScreen extends Activity implements View.OnClickListener{

    @Override
protected void onCreate(Bundle savedInstanceState) {
       // setup listeners.
        findViewById(R.id.imageView2).setOnClickListener(MenuPricipalScreen.this);
        findViewById(R.id.imageView3).setOnClickListener(MenuPricipalScreen.this);
        ....
     }

   .
   .
   .
 // variable to track event time
 private long mLastClickTime = 0;

   //View.OnClickListener.onClick method defination

    @Override
public void onClick(View v) {
    // Preventing multiple clicks, using threshold of 1 second
    if (SystemClock.elapsedRealtime() - mLastClickTime < 1000) {
        return;
          }
    mLastClickTime = SystemClock.elapsedRealtime();

            // Handle button clicks
            if (v == R.id.imageView2) {
        // Do ur stuff.
         }
            else if (v == R.id.imageView2) {
        // Do ur stuff.
         }
            ...
      }
  .
  .
  .

 }