Creé un cuadro de diálogo personalizado que amplía Diálogo. Un botón en el que el diálogo es un botón "Aceptar" que se espera que el usuario presione cuando termine de ingresar información en otros campos. No puedo hacer que ningún oyente esté configurado para disparar ese botón.Botón en el cuadro de diálogo personalizado que no responde a los eventos de clics
public class HeightDialog extends Dialog {
private Button okButton;
…
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.heightdialog);
this.okButton = (Button)this.findViewById(R.id.userOkWithHeight);
this.okButton.setOnClickListener(new android.view.View.OnClickListener() {
public void onClick(View v) {
// Does not fire
HeightDialog.this.dismiss();
return;
}
});
this.okButton.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
// Does not fire
HeightDialog.this.dismiss();
return true;
}
});
this.okButton.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// Does not fire
HeightDialog.this.dismiss();
return true;
}
});
…
}
También intentaron una implementación en la clase de diálogo implementado los oyentes (http://www.androidcompetencycenter.com/2009/01/android-basics-dialogs-and-floating-activities/) en lugar de utilizar clases internas (http://about-android.blogspot.com/2010/02/create-custom-dialog.html): Todavía no hubo suerte.
public class HeightDialog extends Dialog implements View.OnClickListener {
private Button okButton;
…
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.heightdialog);
this.okButton = (Button)this.findViewById(R.id.userOkWithHeight);
this.okButton.setOnClickListener(this);
public void onClick(View view){
HeightDialog.this.dismiss();
return;
}
…
}
He establecer puntos de interrupción dentro de cada uno de los oyentes en ambas versiones de la aplicación y el depurador nunca se detiene la ejecución. Intenté usar clases internas para los oyentes que no resolvieron el problema.
¿Alguna pista? Gracias
Tener el Diálogo implementar el oyente no ayudó. Se actualizó la pregunta con ambos enfoques utilizados con el mismo resultado. – Mike