2017-02-12 71 views
0

我想用模式微調器而不是日曆顯示DatePickerDialog。在我的styles.xml,我試圖把這個屬性,但它說,我應該使用的最低SDK版本是API 21如何將Android DatePicker模式設置爲21級以下的API的微調器

<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

我試過但仍然沒有工作。我也發現[這](http://stackoverflow.com/questions/30509828/impossible-to-make-my-datepickerdialog-use-a-spinner-style-programmatically),它看起來像我需要真的把XML spinner在style.xml中,但Android Studio說它有一個minSdk爲21 – racumin

3

找到了答案。而不是在onCreateDialog方法中創建一個新的DatePickerDialog,我只是爲日期選擇器創建了自己的佈局,並在方法中使用了它。

這裏是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(); 
    } 
} 

謝謝!

相關問題