如何在 Android 中以编程方式更改 DatePicker 和 TimePicker 的样式?
How to change the style from DatePicker and TimePicker programmatically in Android?
我创建了一个 TabHost,其中包含 2 个带有 DatePicker 和 TimePicker 的选项卡:
TabHost dayTabHost = (TabHost) layout.findViewById(R.id.tabHost);
dayTabHost.setup();
TabHost.TabSpec dayTabSpec = dayTabHost.newTabSpec("Day");
dayTabSpec.setIndicator("Day");
dayTabSpec.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String arg) {
DatePicker datePicker = new DatePicker(getBaseContext());
return datePicker;
}
});
dayTabHost.addTab(dayTabSpec);
TabHost.TabSpec timeTabSpec= dayTabHost.newTabSpec("Time");
timeTabSpec.setIndicator("Time");
timeTabSpec.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String arg) {
TimePicker timePicker = new TimePicker(getBaseContext());
return timePicker;
}
});
dayTabHost.addTab(timeTabSpec);
我不知道如何将这些选择器的颜色更改为在这种情况下应用中使用的不同样式。
我找到了自己的答案,而且很简单。实例化 TimePicker 和 DatePicker 时,发送一个带有您想要的自定义样式的新 ContextThemeWrapper 作为参数,以便更改样式。
Style.xml
<style name="CustomPickerTheme">
<item name="colorAccent">@color/Red</item>
</style>
MainActivity.class
TimePicker timePicker = new TimePicker(new ContextThemeWrapper(MainActivity.this, R.style.CustomPickerTheme));
DatePicker datePicker = new DatePicker(new ContextThemeWrapper(MainActivity.this, R.style.CustomPickerTheme));
我创建了一个 TabHost,其中包含 2 个带有 DatePicker 和 TimePicker 的选项卡:
TabHost dayTabHost = (TabHost) layout.findViewById(R.id.tabHost);
dayTabHost.setup();
TabHost.TabSpec dayTabSpec = dayTabHost.newTabSpec("Day");
dayTabSpec.setIndicator("Day");
dayTabSpec.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String arg) {
DatePicker datePicker = new DatePicker(getBaseContext());
return datePicker;
}
});
dayTabHost.addTab(dayTabSpec);
TabHost.TabSpec timeTabSpec= dayTabHost.newTabSpec("Time");
timeTabSpec.setIndicator("Time");
timeTabSpec.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String arg) {
TimePicker timePicker = new TimePicker(getBaseContext());
return timePicker;
}
});
dayTabHost.addTab(timeTabSpec);
我不知道如何将这些选择器的颜色更改为在这种情况下应用中使用的不同样式。
我找到了自己的答案,而且很简单。实例化 TimePicker 和 DatePicker 时,发送一个带有您想要的自定义样式的新 ContextThemeWrapper 作为参数,以便更改样式。
Style.xml
<style name="CustomPickerTheme">
<item name="colorAccent">@color/Red</item>
</style>
MainActivity.class
TimePicker timePicker = new TimePicker(new ContextThemeWrapper(MainActivity.this, R.style.CustomPickerTheme));
DatePicker datePicker = new DatePicker(new ContextThemeWrapper(MainActivity.this, R.style.CustomPickerTheme));