问题
In the android code ,I use a DatePickerDialog to choose the date.it behaves differently in android material design and the previous versions.So how can I set fix this question to let material design behaves the same as before in java code ?
回答1:
Change DatePicker Mode in DatePickerDialog in Lollipop devices
Try this,
create style in values-v21
<style name="style_date_picker_dialog" parent="Theme.AppCompat.Light.Dialog">
<item name="android:datePickerStyle">@style/style_date_picker</item>
</style>
<style name="style_date_picker" parent="android:Widget.Material.Light.DatePicker">
<item name="android:datePickerMode">spinner</item>
</style>
and in your activity
public class MainActivity extends AppCompatActivity {
private Button button;
private DatePickerDialog mDatePickerDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mDatePickerDialog = new DatePickerDialog(MainActivity.this, R.style.style_date_picker_dialog, dateSetListener, 2015, 10, 16);
} else {
mDatePickerDialog = new DatePickerDialog(MainActivity.this, dateSetListener, 2015, 10, 16);
}
mDatePickerDialog.setTitle("Select Date");
mDatePickerDialog.show();
}
});
}
private DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
mDatePickerDialog.dismiss();
}
};
}
I hope it is helpful to you.
来源:https://stackoverflow.com/questions/33162005/how-to-set-datepickermode-in-a-fragment