Android v7 또는 v14 라이브러리와 함께 Android 기본 설정을 사용하는 것에 대해 혼란스러워합니다. 구글이 몇 달에 한 번씩 API를 바꾼 것처럼 보입니다.Android 라이브러리의 시간 설정 대화 상자가
시간 기본 설정 대화 상자를 만들려고합니다. 그러나 현재 나의 지원 라이브러리는 작동하지 않습니다.
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를 사용해서는 안 (FragmentCompat) 클래스와 추가 조각 지원 클래스와 조각 사용자 인터페이스 패턴에 대한 지원을 추가? 오래된 장치에서도 작동합니까? 그렇다면 왜 Google이 그것을 만들었습니까? – amitairos
이 구성 요소는 단지 추가 용도로만 사용할 수 있지만 APK 크기는 늘어납니다. –
어쨌든 일부 기능 만 사용할 수 있으므로 지원 라이브러리가 필요합니다. 어떤 것을 사용하면 안되며 어떤 환경 설정을 사용해야합니까? 이전 api에서 어떤 작업을합니까? – amitairos