カスタムDialogPreferenceがあります。ダイアログはPreferenceScreenから呼び出されます。すべて正常に動作し、ダイアログが起動してTimePickerが表示されます。
しかし、どうすれば選択した値を取得できますか?まず、プリファレンスの概要に選択した時間を書いてみました。(したがって、var xxx :)後で、SharedPreferencesに値を保存したいと思います。
これは私が今持っているものです:
public class Calendar extends DialogPreference implements
TimePicker.OnTimeChangedListener {
TimePicker tp;
int xxx;
public Calendar(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public Calendar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
private void initialize() {
setPersistent(true);
}
@Override
protected View onCreateDialogView() {
tp = new TimePicker(getContext());
tp.setIs24HourView(true);
return tp;
}
@Override
public void onTimeChanged(TimePicker arg0, int arg1, int arg2) {
}
@Override
public void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
if (positiveResult) {
// getEditor().
setTitle(getTitle());
setSummary(Integer.toString(xxx));
}
}
private TimePicker.OnTimeChangedListener mTimeSetListener =
new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
xxx=hourOfDay;
}
};
}
どうもありがとうございました