[英]DialogPreference setSummary()
单击时,我有一个自定义首选项显示一个TimePicker对话框。 当要选择一个显示所选时间的值时,我想为首选项设置摘要。 怎么办呢? 我不明白如何使用setSummary(CharSequence)方法。
自定义首选项:
public class TimePreference extends DialogPreference {
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
private TimePicker timePicker;
public TimePreference(Context context, AttributeSet attributes) {
super(context, attributes);
setPersistent(false);
}
@Override
public void onBindDialogView(View view) {
super.onBindDialogView(view);
timePicker = (TimePicker) view.findViewById(R.id.prefTimePicker);
timePicker.setCurrentHour(getSharedPreferences().getInt(getKey() + ".hour", hour));
timePicker.setCurrentMinute(getSharedPreferences().getInt(getKey() + ".minute", minute));
timePicker.setIs24HourView(DateFormat.is24HourFormat(timePicker.getContext()));
}
@Override
protected void onDialogClosed(boolean okToSave) {
super.onDialogClosed(okToSave);
if (okToSave) {
timePicker.clearFocus();
SharedPreferences.Editor editor = getEditor();
editor.putInt(getKey() + ".hour", timePicker.getCurrentHour());
editor.putInt(getKey() + ".minute", timePicker.getCurrentMinute());
editor.commit();
// Here should be the setSummary() method, maybe?
}
}
}
主要活动:
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content,
new PrefsFragment()).commit();
}
}
在DialogPreference构造函数中使用以下几行
setTitle("Your Preference Name goes here");
setSummary("Your summary goes here")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.