How to get the DialogPreference POSITIVE_BUTTON to work on OnClick?

android, events, java, mobile, onclick

Solution

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
    }
 }
}

Problem

I'm trying to write something to set a password with `DialogPrefence`. How do I get the `onClick()` event at OK button from the dialog? Here is the 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 } }); } } ```

Original source