Wie vermeide ich mehrere Schaltflächen-Klick zur gleichen Zeit in Android?

Ich benutze zwei Tasten in Sicht. Beim gleichzeitigen Klicken auf zwei Tasten geht es zu einer anderen Aktivität. Wie kann man das vermeiden?

Ich habe so versucht, aber es funktioniert nicht, bitte sparen ….

  • Warum gibt es einen Unterschied in den magnetischen Werten von verschiedenen Smartphones genommen?
  • Android Studio 2.0 Builds sind wirklich langsam
  • Android Volley: ImageRequest veraltet
  • Wie schalte ich ACTION_USAGE_ACCESS_SETTINGS ab, wenn der Benutzer auf die richtige Zielanwendung klickt?
  • Ausnahme beim Aufruf der setDataSource (FileDescriptor) Methode (fehlgeschlagen .: status = 0x80000000)
  • Wie kann ich die Farbe und den Text des Action-Modus anpassen?
  • 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); } } 

    Vielen Dank,

  • Beste REST Client Framework / Utility auf Android
  • Wie bekomme ich Aktivitätsreferenz in View-Klasse?
  • Android: Übergeben von Parametern auf eine Registerkarte
  • Erstellen eines Dienstes, um die Datenbankverbindung zwischen allen Aktivitäten in der Android App zu teilen?
  • Wie lese ich die Kontaktliste?
  • Android: Wie vermeiden Sie Pressen außerhalb des Kreises einer runden Taste mit Wrap Inhalt?
  • 5 Solutions collect form web for “Wie vermeide ich mehrere Schaltflächen-Klick zur gleichen Zeit in Android?”

    Die Standardmethode, um mehrere Klicks zu vermeiden, besteht darin, die zuletzt angeklickte Zeit zu speichern und die anderen Klicks innerhalb von 1 Sekunde (oder einer beliebigen Zeitspanne) zu vermeiden. Beispiel:

     // Make your 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 your stuff. } else if (v == R.id.imageView3) { // Do your stuff. } ... } . . . } 

    Du kannst die Multi-Touch auf deiner App deaktivieren, indem du diesen android:splitMotionEvents="false" und android:windowEnableSplitTouch="false" in deinem Thema.

     <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> ... <item name="android:splitMotionEvents">false</item> <item name="android:windowEnableSplitTouch">false</item> </style> 

    Sie können versuchen, meine kleine Bibliothek, es bietet, was genau Sie wollen mit dem gleichen Ansatz wie Shivanand 'Lösung. https://github.com/RexLKW/SClick

    Eine "Bessere" Praxis ist, den onClickListener so zu benutzen ->

     OnClickListener switchableListener = new OnClickListener(@Override public void onClick(View arg0) { arg0.setOnClickListener(null); (or) use the view directly as a final variable in case of errors ex : textView.setOnClickListener(null); // Some processing done here Completed , enable the onclicklistener arg0.setOnClickListener(switchableListener); }); 

    Dies sollte das Problem beheben und seine ganz einfache Art, Dinge zu behandeln

    Mein Vorschlag für Sie ist in jedem Button klicken, bevor Sie einen anderen Code verwenden, verwenden Sie die Methode hasFocus (). Nur eine Ansicht kann zu einem bestimmten Zeitpunkt fokussieren, also sollte dies Sie davon abhalten, auf beide klicken zu können

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.