I am trying to create a NumberPicker dialog in my preference screen. I have already made one following this:https://stackoverflow.com/a/5533295/2442638
However, for my second dialog, I only want one spinner, so I have adapted the code as follows:
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.NumberPicker;
public class SnoozeTPP extends DialogPreference { 
    private int Minute = 0;
    private NumberPicker np= null;
    public static int getMinute(String time) {
        String[] pieces = time.split(":");
        return (Integer.parseInt(pieces[1]));
    }
    public SnoozeTPP(Context context, AttributeSet attrs) {
        super(context, attrs);
        setPositiveButtonText("Set"); 
        setNegativeButtonText("Cancel"); 
    }
    @Override
    protected View onCreateDialogView() {
        np = new NumberPicker(getContext());
        return (np);
    }
    @Override
    protected void onBindDialogView(View v) {
        super.onBindDialogView(v);
        np.setMaxValue(60);
        np.setValue(Minute);
    }
    @Override
    protected void onDialogClosed(boolean positiveResult) {                                                             
        super.onDialogClosed(positiveResult);
        if (positiveResult) {
            Minute = np.getValue();
            String time = 0 + ":" + String.valueOf(Minute);
            if (callChangeListener(time)) {
                persistString(time);
            }
        }
    }
    @Override
    protected Object onGetDefaultValue(TypedArray a, int index) {
        return (a.getString(index));
    }
    @Override
    protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
        String time = null;
        if (restoreValue) {
            if (defaultValue == null) {
                time = getPersistedString("08:00");
            } else {
                time = getPersistedString(defaultValue.toString());
            }
        } else {
            time = defaultValue.toString();
        }
        Minute = getMinute(time);
    }
}
There are no errors and the dialog pops up correctly, but the layout of it seems to be "messed up" :-).  The blue line stretch across the whole dialog instead of just the width of the numbers.   
The question is - how to set the layout correctly? (I am sure there are lots of other mistakes as well!)
Thank you
 
     
    
 
     
     
    