package com.focasoftware.deboinventario; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.view.View; import android.widget.Button; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.util.ArrayList; /** * Dialogo personalizado que permite al usuario elegir entre realizar o no una acci�n * proveyendole adem�s la posibilidad de elegir una opcion de un radio group * @author GuillermoR * */ public class DialogPersoComplexSiNoOpcs extends Dialog { /** * ACtivity que lo abrio, aparanetmente en desuso */ private Activity owner; /** * Indice de la opcion que se seleccion� mediante el radiobutton */ private int opcionSeleccionada=0; /** * Constructor para inicializar la UI y los handlers correspondientes *

1� Construcci�n del t�tulo *

2� Cargamos el layout y main layout *

3� Construcci�n de la imagen *

4� Mensaje *

5� Setear los textos en las opciones a los radio * button y agregarlos al radiogroup *

6� Botones * * @param context * @param titulo * @param mensaje * @param opc * @param categoria_alerta * @param listenerPositivo * @param listenerNegativo */ public DialogPersoComplexSiNoOpcs (@NonNull Context context, @NonNull String titulo, String mensaje, @NonNull ArrayList opc, int categoria_alerta, View.OnClickListener listenerPositivo, @Nullable View.OnClickListener listenerNegativo) { super(context); final Activity owner = (Activity) context; //1� Construcci�n del t�tulo: if (titulo.length() > 0) { super.setTitle(titulo); } //2� Cargamos el layout y main layout: super.setContentView(R.layout.z_dialogpersocomplex_sino_opc); //3� Construcci�n de la imagen: ImageView imagen = (ImageView) super.findViewById(R.id.DIALOG_imagen); switch (categoria_alerta) { case DialogPerso.DEFAULT: imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_alertar)); break; case DialogPerso.VALIDAR: imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_validar)); break; case DialogPerso.ALERTAR: imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_alertar)); break; case DialogPerso.PROHIBIR: imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_prohibir)); break; default: imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_alertar)); break; } //4� Mensaje: TextView texto = (TextView) super.findViewById(R.id.DIALOG_texto); texto.setText(mensaje); //5� Setear los textos en las opciones a los radio button y agregarlos al radiogroup RadioGroup grupo=(RadioGroup) super.findViewById(R.id.DIALOG_opciones); for (int i=0;i< opc.size();i++){ RadioButton opcion=new RadioButton(context); opcion.setText(opc.get(i)); opcion.setId(i); opcion.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(@NonNull CompoundButton buttonView, boolean isChecked) { if(isChecked){ opcionSeleccionada=buttonView.getId(); } } }); if(i==0){ opcion.setChecked(true); } grupo.addView(opcion); } // RadioButton opcion1=(RadioButton)super.findViewById(R.id.DIALOG_radio_opc1); // RadioButton opcion2=(RadioButton)super.findViewById(R.id.DIALOG_radio_opc2); // opcion1.setText(opc.get(0)); // opcion1.setText(opc.get(1)); //6� Botones: Button boton_validar = (Button) super.findViewById(R.id.DIALOG_boton_validar); Button boton_cancelar = (Button) super.findViewById(R.id.DIALOG_boton_cancelar); if (listenerNegativo != null) { boton_validar.setOnClickListener(listenerPositivo); boton_cancelar.setOnClickListener(listenerNegativo); } else { boton_validar.setOnClickListener(listenerPositivo); boton_validar.setText("OK"); boton_cancelar.setVisibility(View.GONE); } } public int getOpcionSeleccionada() { return opcionSeleccionada; } public void setOpcionSeleccionada(int opcionSeleccionada) { this.opcionSeleccionada = opcionSeleccionada; } }