7 Stimmen

Schaltfläche im benutzerdefinierten Dialog reagiert nicht auf Klick-Ereignisse

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X