2016-11-01 3 views
0

wählen Es gibt 10 Radioknöpfe in Recyclerview. Ich möchte auf Radiobutton klicken und dies muss nach der Berührung ausgewählt werden. Es scheint gut mit einem Finger, aber wenn ich zwei oder mehr Finger gleichzeitig benutze, während ich 2 oder mehr Punkte aus Radiobutton wähle, gibt es mehrere Auswahlprobleme. Nur ein Gegenstand muss ausgewählt sein. Wie kann ich dieses Problem lösen? Wie kann ich 2 oder mehr Fingertippen verhindern?Verhindern, dass zwei oder drei Finger mit Radioknopf in Android

Ich kontrollierte es mit Code unten.

for(int i=0;i<itemList.size();i++) { 

if(itemList.get(i).isSelected()) 

itemList.get(i).setSelected(false); 

} 

itemList.get(position).setSelected(true); 

adapter.notifyDataSetChanged(); 
+0

Sie den Benutzer nicht verhindern kann mit zwei oder mehreren Fingern tippen ... Abgesehen von dem Entfernen aller "nicht benötigten" Finger vom Benutzer ... – DThought

+0

Was genau möchten Sie tun? Möchten Sie einen gegenseitigen Ausschluss schaffen? Haben Sie mehrere Optionsfelder und nur eines sollte ausgewählt bleiben? Seien Sie klarer bitte –

+0

Ja. Es gibt 10 Radioknöpfe. Nur einer sollte bleiben. Dies ist mit einem Finger möglich, aber wenn Sie mit 2 Fingern wählen, funktioniert es nicht. – BadCode

Antwort

1

Wenn ich Ihre Frage verstehen würden Sie wollen eine Radiogroup verwenden.

Layout-Datei:

<?xml version="1.0" encoding="utf-8"?> 
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <RadioButton android:id="@+id/radio_pirates" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/pirates" 
     android:onClick="onRadioButtonClicked"/> 
    <RadioButton android:id="@+id/radio_ninjas" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/ninjas" 
     android:onClick="onRadioButtonClicked"/> 
</RadioGroup> 

In Ihrer Tätigkeit:

public void onRadioButtonClicked(View view) { 
    // Is the button now checked? 
    boolean checked = ((RadioButton) view).isChecked(); 

    // Check which radio button was clicked 
    switch(view.getId()) { 
     case R.id.radio_pirates: 
      if (checked) 
       // Pirates are the best 
      break; 
     case R.id.radio_ninjas: 
      if (checked) 
       // Ninjas rule 
      break; 
    } 
} 

Sie die Dokumentation zunächst sollte lauten: https://developer.android.com/guide/topics/ui/controls/radiobutton.html

+0

Ich habe radioButton in Adapter verwendet, weil ich nicht weiß, wie viele Daten clientseitig kommen werden. Ihre Lösung entspricht nicht meinem Problem, aber danke. – BadCode

+0

hmm.,. Es entspricht genau deinem Problem. Und das ist der einfachste Weg. . . Wenn Sie die harte Weise Implementierung wollen. . . implementieren und deaktivieren Sie Multi-Touch. . . . Aber das ist wieder einmal der beste Weg. –

Verwandte Themen