Search code examples
androidbuttonandroid-activityonclick

How to prevent the activity from loading twice on pressing the button


I am trying to prevent the activity from loading twice if I press the button twice instantly after the first click.

I have an activity which loads on click of a button, say

 myButton.setOnClickListener(new View.OnClickListener() {
      public void onClick(View view) {
       //Load another activity
    }
});

Now because the activity to be loaded has network calls, it takes a little time to load (MVC). I do show a loading view for this but if I press the button twice before that, I can see the activity being loaded twice.

Do any one know how to prevent this?


Solution

  • In the button's event listener, disable the button and show another activity.

        Button b = (Button) view;
        b.setEnabled(false);
    
        Intent i = new Intent(this, AnotherActitivty.class);
        startActivity(i);
    

    Override onResume() to re-enable the button.

    @Override
        protected void onResume() {
            super.onResume();
    
            Button button1 = (Button) findViewById(R.id.button1);
            button1.setEnabled(true);
        }