2013-02-21 8 views
11

enter image description here
Ich möchte eine Schaltfläche unter dem Radio zwei Radio Button B zentriert hinzufügen und wenn ich eine Option überprüft und klicken Sie auf bestätigen, eine Aktion stattfinden. Jede Hilfe bitteDialogfeld mit Radiobutton und Validieren Sie die Taste

final CharSequence[] photo = {"A","B"}; 

AlertDialog.Builder alert = new AlertDialog.Builder(this); 

alert.setTitle("Select Gender"); 

alert.setSingleChoiceItems(photo,-1, new 

DialogInterface.OnClickListener() 

{ 

    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
     if(photo[which]=="A") 

     { 

      gen="B"; 
     } 

     else if (photo[which]=="B") 

     { 

      gen="B"; 

     } 
    } 

}); 
alert.show(); 

Antwort

13

Meine Methode machen Benutzerdefinierte Dialog

http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application Referenz von hier

  1. erstellen xml benutzerdefinierte Dialog

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" > 
    
        <RadioButton 
         android:id="@+id/rd_!" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="A" /> 
    
        <RadioButton 
         android:id="@+id/rd_2" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_below="@+id/rd_!" 
         android:text="B" /> 
    
        <Button 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_below="@+id/rd_2" 
         android:layout_centerInParent="true" 
         android:text="OK" /> 
        </RelativeLayout> 
    

und activity.java Datei

Dialog dialog = new Dialog(Dialogeshow.this); 
    dialog.setContentView(R.layout.custom_dialoge); 
    dialog.setTitle("This is my custom dialog box"); 
    dialog.setCancelable(true); 
    // there are a lot of settings, for dialog, check them all out! 
    // set up radiobutton 
    RadioButton rd1 = (RadioButton) dialog.findViewById(R.id.rd_); 
    RadioButton rd2 = (RadioButton) dialog.findViewById(R.id.rd_2); 

    // now that the dialog is set up, it's time to show it 
    dialog.show(); 
+0

Sie sollten Ihre RadioButtons zu RadioGroup in XML-Datei hinzufügen. – Kostya

+0

So fügen Sie onclicklistener hinzu –

+1

@HarishReddy Für die Listener: RadioButton rd1 = (RadioButton) dialog.findViewById (R.id.rd_1); rd1.setOnClickListener (neue View.OnClickListener() { @ Überschreiben öffentliche void onClick (View v) { } }); – davidivad

1

Sie können eine einzelne Taste, um Ihren Dialog hinzufügen Builder.setNeutralButton verwenden.

+0

aber wie ein Radio Option nur auf den Knopf klicken – Dimitri

+0

Sie bitte diese Seite verweisen http://wptrafficanalyzer.in/blog/alert-dialog-window-with-radio-buttons-in-android/ – AndroidEnthusiastic

+0

@peter Ihre Lösung unterstützt nicht Froyo 2.2 – Dimitri

5

Sie unter Methode Dialog verwenden können

public void showDialog(Context context, String title, String[] btnText, 
     DialogInterface.OnClickListener listener) { 

    final CharSequence[] items = { "One", "Two" }; 

    if (listener == null) 
     listener = new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface paramDialogInterface, 
        int paramInt) { 
       paramDialogInterface.dismiss(); 
      } 
     }; 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    builder.setTitle(title); 

    builder.setSingleChoiceItems(items, -1, 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int item) { 

       } 
      }); 
    builder.setPositiveButton(btnText[0], listener); 
    if (btnText.length != 1) { 
     builder.setNegativeButton(btnText[1], listener); 
    } 
    builder.show(); 
} 

Und das anrufende Teil, wie unten getan werden kann, um zu zeigen:

showDialog(MainActivity.this, "Your Title", new String[] { "Ok" }, 
    new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      if(which==-1) 
      Log.d("Neha", "On button click"); 
      //Do your functionality here 
     } 
    }); 
+1

Ich frage mich, wie kann ich prüfen, ob ein Radio-Button mit Ihrer Lösung – Dimitri

+3

geprüft wird, wenn ich es beide nannte, welcher Wert ist -1 – Dimitri

+0

Können Sie bitte erklären, wie der Kreis grün zeigt, wenn wir das Element in diesem Code auswählen? und können wir diesen Alarmdialog in onClick Listener einer Ansicht ohne diese showDialog Methode direkt aufrufen ?? Ich habe es versucht, aber die Kreisdosis nicht ausgewählt ausgewählt. @Neha Dhanwani –

14

Versuchen Sie dies, wählen Sie einfach die Standardauswahl und fügen Sie dem Dialog eine ganze Zahl -> 0 hinzu

final CharSequence[] items = { " HDMI IN ", " AV IN" }; 

     // Creating and Building the Dialog 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Select Input Type"); 

     builder.setSingleChoiceItems(items,inputSelection, 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int item) { 
         inputSelection = item; 
         levelDialog.dismiss(); 
        } 
       }); 
     levelDialog = builder.create(); 
     levelDialog.show(); 
Verwandte Themen