2016-12-12 5 views
0

Ich habe eine Fragment-Klasse, die ListFragment erweitert. Die onListItemClick() ist wie folgt -Disable schnellen Klick auf Element in ListFragment

@Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     MyAdapter.MergedData item = adapter.getItem(position); 

     Intent intent = MyActivity.createIntent(mActivity, item); 
     startActivity(mActivity, intent); 
    } 

Voraussetzung ist, ich schnelle Klick auf den Listeneintrag deaktivieren müssen. Wie kann ich es erreichen?

Antwort

0

Sie die folgende ...

/** 
* used to prevent the double click on some view 
* 
* @param view a view whick is required prevention. 
*/ 
public static void preventDoubleClick(final View view) { 
    view.setEnabled(false); 
    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      view.setEnabled(true); 
     } 
    }, 2000); //set this based on your requirement 
} 

Rufen Sie diese Methode auf

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    //used to prevent the rapid clicks.... 
    preventDoubleClick(v); 

    MyAdapter.MergedData item = adapter.getItem(position); 

    Intent intent = MyActivity.createIntent(mActivity, item); 
    startActivity(mActivity, intent); 
} 

und Sie sind fertig!

0

Sie die Ansicht für eine Weile deaktivieren kann ich denke, verwenden Sie diese Funktion: -

public static void preventDoubleClick(final View v) { 
    v.setEnabled(false); 

    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      v.setEnabled(true); 
     } 
    }, 1000); // Will disable view for 1 sec. 
} 
Verwandte Themen