Tôi đang cố gắng để có được một bán kính NumberPicker chạy trong một lớp mở rộng DialogPreference, và tôi gặp rất nhiều rắc rối khi setView() hoạt động. Hãy bắt đầu với một số mã:Alertdialog.Builder setview: Cuộc gọi yêu cầu cấp 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);
}
}
Điều này cho tôi lỗi trên builder.setXem "Call require API 21 (current min is 15)". Tôi muốn hỗ trợ các thiết bị có API 15+, vì vậy việc thay đổi này không phải là một tùy chọn. Bây giờ, nếu tôi cố gắng ghi đè
protected void onPrepareDialogBuilder(android.support.v7.app.AlertDialog.Builder builder)
thay vào đó, nó nói "Phương pháp không ghi đè phương pháp từ lớp cha của nó."
Câu hỏi là, làm cách nào tôi có thể đặt chế độ xem? Nó không nhất thiết phải nằm trong onPrepareDialogBuilder(), miễn là nó hỗ trợ API 15+. Cảm ơn!
PS: Hãy cho tôi biết nếu bạn cần thêm mã. Để có được nó hiển thị trong XML, chỉ cần thêm video này vào <PreferenceScreen>
:
<com.example.project.RadiusPickerPreference
android:id="@+id/radPickerPref"
android:key="@string/pref_key_default_radius"
android:title="@string/pref_title_default_radius"/>
Rất tiếc, tôi đã bỏ lỡ thực tế là setView (Chế độ xem) đã hoạt động với các API cũ hơn. Cảm ơn, hoạt động hoàn hảo. –
Cảm ơn rất nhiều! Tôi đã cố gắng để có được setView() để làm việc kể từ khi tôi thay đổi sdk tối thiểu của tôi đến 15 ... ... – Zillinium