Thanks for your answers! I will show you how I finally managed it, just in case someone wants to do the same.
First, I have a layout file good_timedialog.xml which looks like I wanted:

Then I have a TimePreference class:
public class TimePreference extends DialogPreference{
private final static String lTag="CustomTimeDialog";
private TimePicker picker;
protected TimeObj lastTime;
public TimePreference(Context ctxt,AttributeSet atrs) {
super(ctxt,atrs);
setDialogLayoutResource(R.layout.good_timedialog); // this loads the layout
setPositiveButtonText("");
setNegativeButtonText(""); // hide default buttons
setDialogTitle(ctxt.getString(R.string.selectTimeTimePrefTitle));
}
@Override
protected void onBindDialogView(View v){
super.onBindDialogView(v);
v.findViewById(R.id.butCancel).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Log.d(lTag,"cancel clicked");
getDialog().dismiss();
}
});
v.findViewById(R.id.butNow).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Log.d(lTag,"now clicked");
saveToSP(true);
getDialog().dismiss();
}
});
v.findViewById(R.id.butOK).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Log.d(lTag,"ok clicked");
saveToSP(false);
getDialog().dismiss();
}
});
picker = (TimePicker) v.findViewById(R.id.timePicker);
if (picker!=null) {
picker.setCurrentHour(lastTime.hr);
picker.setCurrentMinute(lastTime.min);
} else { // if it is null
Log.w(lTag,"var picker is null!");
}
}
void saveToSP(boolean now){
if (now) lastTime = new TimeObj(); // make it the current time
else {
lastTime.hr = picker.getCurrentHour();
lastTime.min = picker.getCurrentMinute();
}
setSummary(lastTime.giveString()); // update Summary like hh:mm 16:28
int time = lastTime.giveMinutes(); // 10:30am will be 630 minutes
// save to sharedprefs
if(callChangeListener(time)){
persistInt(time);
if(getEditor().commit()) Log.d(lTag,"Successfully saved changes");
else Log.w(lTag,"Did NOT save changes");
}
}
//... more ...
}
And at the perferences.xml file, I can use <com.example.TimePreference android:key="test"/>