2016-03-29 20 views
0

Uygulamamla ilgili bir sorunum var.JAVA - RadioButton işaretli

<RadioGroup 
    android:layout_width="148dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" > 
<!-- android:buttonTint="@color/BouttonsRadio" --> 

    <RadioButton 
     android:layout_width="137dp" 
     android:layout_height="wrap_content" 
     android:text="@string/Boutton_Bluetooth" 
     android:id="@+id/BouttonRADIO_Bluetooth" 
     android:layout_gravity="center_horizontal" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 

    <RadioButton 
     android:layout_width="137dp" 
     android:layout_height="wrap_content" 
     android:text="@string/Boutton_RS232" 
     android:id="@+id/BouttonRADIO_RS232" 
     android:layout_gravity="center_horizontal" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 
</RadioGroup> 

, ben üç düğme var bir tane AlertDialog var: İki RadioButton sahip Nihayet

public void fenetre_connexiondeconnexion() { 

    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
      context); 


    final View view2 = View.inflate(MainActivity.this, R.layout.fenetre_connexion_B_R, null); 


    // Titre de la fenêtre 
    alertDialogBuilder.setTitle("Paramètres connexion"); 
    alertDialogBuilder.setIcon(R.drawable.logo_connecterdeconnecter); 

    // set dialog message 
    alertDialogBuilder 
      .setMessage("Veuillez choisir le type de connexion :") 
      .setCancelable(false); 

    alertDialogBuilder.setView(view2); 


    alertDialogBuilder.setPositiveButton("CONNEXION", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      // if this button is clicked, close 
      // current activity 
      connexion_rs232(); 
     } 
    }); 
    alertDialogBuilder.setNegativeButton("ANNULER", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      // if this button is clicked, just close 
      // the dialog box and do nothing 
      dialog.cancel(); 
     } 
    }) 
      .setNeutralButton("PARAMETRES", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        fenetre_parametres_rs232(view2); 
       } 
      }); 




    // Création de la fenêtre 
    AlertDialog alertDialog = alertDialogBuilder.create(); 


    // Affichage de la fenêtre 
    alertDialog.show(); 


} 

ve ben radyo düğmesini kontrol almak isteyeceksiniz ve Bluetooth bulunuyor YALNIZCA nötr Button'u devre dışı bırakın. Bunun için , bunu buldum, ama işe yaramadı:

Button button = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL); 

if(BouttonRadio_B.isChecked()) { 
    button.setEnabled(false); 
} 
if(BouttonRadio_R.isChecked()) { 
    button.setEnabled(true); 
} 
+0

Son olarak, iletişim kutusunun tuşunu elde etmek ve radyo düğmesinin (ikisinden biri) işaretlendiğini kontrol etmek ve ardından uzaktan kumanda düğmesinin –

+0

@ düğmesini etkinleştirmek/devre dışı bırakmak için son olarak sağladığınız kodun var mı? nits.kk: Benim dersim MainActivity.java'dır ve benim yöntemim Etkinliğindedir. – McNavy

cevap

1

Sen gösteren sonra infaz edilecek olursa RadioButton'un kontrol değişikliği dinleyicisini dinlemek için dinleyiciyi uygulamak zorunda. details.And evet button.setEnabled(isChecked) kullanabilirsiniz fazlası için this documentation bakınız:

BouttonRadio_R.setOnCheckedChangeListener(new 
    CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     if (isChecked) { 
      button.setEnabled(true); 
     } 
     else{ 
      button.setEnabled(false); 
     } 
} 

Bu sizin için çalışması gerekir.

+0

Cevabınızı, bu sorunun neden sunulan sorun için iyi bir çözüm olduğunu belirtiyor musunuz? Ayrıca, sadece 'button.setEnabled (isChecked)' yapabilir misiniz? - bu bir if/else yapısını koruyacaktır. – halfer

+0

Daha fazla ayrıntı için RadioButton.See [this] (http://developer.android.com/reference/android/widget/RadioGroup.OnCheckedChangeListener.html) onay değiştirme dinleyicisini dinlemek için dinleyiciyi uygulamanız gerekir. Evet ** button.setEnabled (isChecked) ** 'ı kullanabilir. – sanjay

+0

Teşekkürler. Bunu sizin için düzenledim, lütfen gelecekte kendiniz yapmaya hazır olun. '' :-) – halfer

1

O

Button button = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL); 
    if(BouttonRadio_B.isChecked()) { 
     button.setEnabled(false); 
    } 
    if(BouttonRadio_R.isChecked()) { 
     button.setEnabled(true); 
    } 

çalışmalıdır oluyor bu kod diyaloğu

alertDialog.show(); 
+0

Krumish: Kodunuzla sorun yok. Bu kodu, alertttdialog.show() 'dan sonra ekliyorum. Uygulama hatasız derlenecek, ancak bu yöntemi kullanan benim menümdeki öğeye tıkladığımda, uygulama FC. – McNavy

İlgili konular