我對使用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