2017-02-12 2 views
0

Я хочу отображать DatePickerDialog с помощью режима spinner вместо календаря. В моей styles.xml, я пытался поставить этот атрибут, но он говорит, что минимальная версия SDK, я должен использовать это API 21.Как установить режим DatePicker для Android для выравнивания API-интерфейсов ниже уровня 21

<item name="android:datePickerMode">spinner</item> 

Я использую минимум SDK версии 18. Как установить дату по умолчанию режим выбора для скрутки для API ниже API 21?

Это мой Java-код для моего выбора даты:

public class MyDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener { 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(), R.style.MyTheme, this, 0, 0, 0); 
    return datePickerDialog; 
} 

@Override 
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { 

} 

}

Спасибо!

ответ

0

Мое предложение Сначала получите версию API. Если версия API ниже 21, то установите невидимый счетчик прядей и выбор даты Чтобы получить версию API. Проверить эту ссылку:

Retrieving Android API version programmatically

Позвольте мне знать, если это может решить вашу проблему, я не уверен, насколько надежен мое предложение

Спасибо!

+0

Я пробовал это, но все еще не работал. Я также нашел [this] (http://stackoverflow.com/questions/30509828/impossible-to-make-my-datepickerdialog-use-a-spinner-style-programmatically), и похоже, что мне нужно поместить xml spinner в стиле.xml, но Android Studio говорит, что он должен иметь minSdk из 21 – racumin

3

Найден ответ. Вместо того, чтобы создавать новый DatePickerDialog в методе onCreateDialog, я только что создал свой собственный макет для выбора даты, завышенный в методе.

Вот XML макет:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<DatePicker 
    android:id="@+id/dialog_date_datePicker" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:calendarViewShown="false" 
    android:datePickerMode="spinner" 
    android:spinnersShown="true"> 
</DatePicker> 

А вот код Java:

public class MyDatePicker extends DialogFragment { 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     View v = getActivity().getLayoutInflater().inflate(R.layout.datepicker, null); 
     return new AlertDialog.Builder(getActivity()).setView(v).create(); 
    } 
} 

Спасибо!

Смежные вопросы