我对使用Android首选项与Support v7或v14库感到困惑。 似乎每隔几个月Google都会更改API。支持库中的Android时间首选项对话框
我正在尝试创建Time Preference对话框。但是,我目前的一个不支持支持库。
public class TimePickerPreference : DialogPreference
{
private int lastHour = 0;
private int lastMinute = 0;
private TimePicker picker = null;
public static int GetHour(string time)
{
string[] pieces = time.Split(':');
return Convert.ToInt32(pieces[0]);
}
public static int GetMinute(string time)
{
string[] pieces = time.Split(':');
return Convert.ToInt32(pieces[1]);
}
public TimePickerPreference(Context ctxt, IAttributeSet attrs) : base(ctxt, attrs)
{
}
protected override View OnCreateDialogView()
{
picker = new TimePicker(Context);
picker.SetIs24HourView(Java.Lang.Boolean.True);
return picker;
}
protected override void OnBindDialogView(View v)
{
base.OnBindDialogView(v);
picker.Hour = lastHour;
picker.Minute = lastMinute;
}
protected override void OnDialogClosed(bool positiveResult)
{
base.OnDialogClosed(positiveResult);
if (positiveResult)
{
lastHour = picker.Hour;
lastMinute = picker.Minute;
string time = lastHour + ":" + lastMinute;
if (lastMinute.ToString().Length == 1)
time = lastHour + ":" + "0" + lastMinute;
if (CallChangeListener(time))
{
PersistString(time);
}
Title = "שעת תזכורת: " + time;
}
}
protected override Java.Lang.Object OnGetDefaultValue(TypedArray a, int index)
{
return a.GetString(index);
}
protected override void OnSetInitialValue(bool restorePersistedValue, Java.Lang.Object defaultValue)
{
string time = string.Empty;
if (restorePersistedValue)
{
if (defaultValue == null)
{
time = GetPersistedString("00:00");
}
else
{
time = GetPersistedString(defaultValue.ToString());
}
}
else
{
time = defaultValue.ToString();
}
lastHour = GetHour(time);
lastMinute = GetMinute(time);
}
}
DialogPreference
不支持库中存在,似乎是什么,而不是要么PreferenceDialogFragment
或PreferenceDialogFragmentCompat
,这两者的工作方式不同,上面的代码不与他们合作。
我真的在失去所有这一切,并会很高兴的一些帮助。
谢谢!
,所以我不应该从支持库使用PreferenceFragment分片用户界面模式支持?它可以在较旧的设备上工作?如果是这样,Google为什么创建它? – amitairos
这个组件只是额外的。你可以使用它,但增加你的apk大小。 –
无论如何,我需要支持库,因为有些功能只能在那里使用。我不应该使用哪一个,以及我应该使用哪一个首选项?哪些工作适用于老年人? – amitairos