Sandro Wiggers Sandro Wiggers - 6 months ago 27
Java Question

How to get the DialogPreference POSITIVE_BUTTON to work on OnClick?

I'm new to mobile programming and I'm having some dificults til now.
I'm trying to write something to set a password with

DialogPrefence
.
My question is, how do I get the event OnClick at
OK
from the dialog?

Here is my code:

package com.kontrol.app;

import android.content.Context;
import android.content.DialogInterface;
import android.preference.DialogPreference;
import android.util.AttributeSet;

public class SS1_Senha extends DialogPreference implements DialogInterface.OnClickListener{

public SS1_Senha(Context context, AttributeSet attrs) {
super(context, attrs);
setPersistent(false);
setDialogLayoutResource(R.layout.ss1_senha);

setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//Action after OK

}
});


}
}

Answer

You need to implement the DialogInterface.OnClickListener and handle the OnClick events of each buttons

Create a custom DialogPreference class like this

public class CustomDialogPreference extends DialogPreference implements DialogInterface.OnClickListener{

public CustomDialogPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    setPersistent(false);
    setDialogLayoutResource(R.layout.image_dialog);
    setPositiveButtonText("OK");
    setNegativeButtonText("CANCEL");
}

@Override
public void onClick(DialogInterface dialog, int which){
    if(which == DialogInterface.BUTTON_POSITIVE) {
        // do your stuff to handle positive button
    }else if(which == DialogInterface.BUTTON_NEGATIVE){
        // do your stuff to handle negative button
    }
 }
}
Comments