Я пытаюсь получить радиус NumberPicker, запущенный в классе, который расширяет DialogPreference, и у меня возникли проблемы с работой setView(). Давайте начнем с некоторым кодом:Alertdialog.Builder setview: для вызова требуется уровень 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);
}
}
Это дает мне ошибку на builder.setView говоря: «Вызов требует API 21 (ток мин составляют 15).» Я хочу поддерживать устройства с API 15+, поэтому изменение этого параметра не является вариантом. Теперь, если я пытаюсь переопределить
protected void onPrepareDialogBuilder(android.support.v7.app.AlertDialog.Builder builder)
вместо этого, он говорит: «Метод не отменяет метод из суперкласса.»
Вопрос в том, как я могу установить представление? Это необязательно должно быть в onPrepareDialogBuilder(), если оно поддерживает API 15+. Благодаря!
PS: Дайте мне знать, если вам нужно больше кода. Чтобы получить это отображается в XML, просто добавьте это к <PreferenceScreen>
:
<com.example.project.RadiusPickerPreference
android:id="@+id/radPickerPref"
android:key="@string/pref_key_default_radius"
android:title="@string/pref_title_default_radius"/>
К сожалению, я пропустил тот факт, что setView (View) работал со старыми API-интерфейсами. Спасибо, отлично работает. –
Спасибо soooo много! Я пытаюсь заставить setView() работать с тех пор, как сменил минимальный sdk на 15 ... ... – Zillinium