Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 22nd, 2012  |  syntax: None  |  size: 1.45 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Android: Prevent multiple onClick events on a button (that has been disabled)
  2. someButton.setOnClickListener(new OnClickListener() {
  3.     @Override
  4.     public void onClick(View v) {
  5.         someButton.setEnabled(false);
  6.         someButton.setClickable(false);
  7.         someButton.setVisibility(View.GONE);
  8.         performTaskOnce();
  9.         }
  10.     });
  11.  
  12. private void performTaskOnce() {
  13.     Log.i("myapp", "Performing task");
  14.     //Do something nontrivial that takes a few ms (like changing the view hierarchy)
  15. }
  16.        
  17. someButton.setOnClickListener(new OnClickListener() {
  18. @Override
  19. public void onClick(View v) {
  20.     someButton.setOnClickListener(null);
  21.     performTaskOnce();
  22.     }
  23. });
  24.        
  25. boolean processClick=true;
  26. someButton.setOnClickListener(new OnClickListener() {
  27.     @Override
  28.     public void onClick(View v) {
  29.         if(processClick)
  30.          {
  31.         someButton.setEnabled(false);
  32.         someButton.setClickable(false);
  33.         someButton.setVisibility(View.GONE);
  34.         performTaskOnce();
  35.          }
  36.         processClick=false;
  37.         }
  38.     });
  39.  
  40. private void performTaskOnce() {
  41.     Log.i("myapp", "Performing task");
  42.     //Do something nontrivial that takes a few ms (like changing the view hierarchy)
  43. }
  44.        
  45. int i = 0;
  46.        
  47. someButton.setOnClickListener(new OnClickListener() {
  48.  @Override
  49.  public void onClick(View v) {
  50.  if(i==0){
  51.     someButton.setEnabled(false);
  52.     someButton.setClickable(false);
  53.     someButton.setVisibility(View.GONE);
  54.     i++;
  55.  }
  56.  
  57.  
  58.     }
  59. });