Próbuję uzyskać właściwość NumberPicker w klasie, która rozszerza DialogPreference, i mam wiele problemów z uruchomieniem metody setView(). Zacznijmy od jakiegoś kodu:Alertdialog.Builder setview: Call wymaga poziomu interfejsu API 21
public class RadiusPickerPreference extends DialogPreference{
public RadiusPickerPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder builder) {
builder.setTitle(R.string.set_radius_dialog_fragment_title);
builder.setView(R.layout.dialog_radius_picker);
builder.setPositiveButton(android.R.string.ok, null);
builder.setNegativeButton(android.R.string.cancel, null);
}
}
To daje mi błąd na builder.setView mówiąc: „Zaproszenie wymaga API 21 (obecny jest 15 min).” Chcę obsługiwać urządzenia z interfejsami API 15+, więc zmiana tej opcji nie jest możliwa. Teraz, gdy próbuję zastąpić
protected void onPrepareDialogBuilder(android.support.v7.app.AlertDialog.Builder builder)
Zamiast tego mówi, „Metoda nie przesłonić metodę z nadklasy.”
Pytanie brzmi, jak ustawić widok? To niekoniecznie musi być w onPrepareDialogBuilder(), o ile obsługuje API 15+. Dzięki!
PS: Daj mi znać, jeśli potrzebujesz więcej kodu. Aby dostać wyświetlane w formacie XML, wystarczy dodać to do <PreferenceScreen>
:
<com.example.project.RadiusPickerPreference
android:id="@+id/radPickerPref"
android:key="@string/pref_key_default_radius"
android:title="@string/pref_title_default_radius"/>
Ups, brakowało mi faktu, że setView (View) działał ze starszymi API. Dzięki, działa idealnie. –
Wielkie dzięki! Próbuję uzyskać setView() do pracy, odkąd zmieniłem mój minimalny sdk na 15 ... ... – Zillinium