Ich habe ein benutzerdefiniertes Dialogfeld erstellt, das Dialog erweitert. Eine Schaltfläche in diesem Dialogfeld ist eine Schaltfläche "OK", die der Benutzer drücken soll, wenn er die Eingabe von Informationen in andere Felder abgeschlossen hat. Ich kann keine Listener, die auf diese Schaltfläche gesetzt sind, zum Auslösen bringen.
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;
}
});
…
}
Ich habe auch eine Implementierung versucht, bei der die Klasse Dialog die Listener (http://www.androidcompetencycenter.com/2009/01/Android-basics-dialogs-and-floating-activities/) implementiert, anstatt innere Klassen (http://about-Android.blogspot.com/2010/02/create-custom-dialog.html) zu verwenden: Immer noch kein Glück.
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;
}
…
}
Ich habe in beiden Versionen der Implementierung Haltepunkte in jedem der Listener gesetzt, und der Debugger hält die Ausführung nie an. Ich habe versucht, innere Klassen für die Listener zu verwenden, was das Problem nicht gelöst hat.
Irgendwelche Anhaltspunkte? Danke