我正在做一个Android开发,对日期选择器对话框有疑问。
单击按钮后,将弹出一个日期选择器,用户应该可以选择日期。
代码已成功编译,当我单击按钮时,对话框弹出,如图1所示,但我希望日期选择器如图2所示。
请让我知道我必须在哪里更改代码。
下面是代码:
public class MainActivity extends AppCompatActivity {
Button B1;
int day_x, month_x, year_x;
static final int id=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
B1 = (Button)findViewById(R.id.button);
B1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
showDialog(id);
}
});
}
@Override
protected Dialog onCreateDialog(int id1)
{
if (id1==id)
return new DatePickerDialog(MainActivity.this,listener,year_x,month_x,day_x);
return null;
}
protected DatePickerDialog.OnDateSetListener listener
=new DatePickerDialog.OnDateSetListener()
{
public void onDateSet(DatePicker view,int year,int month,int day)
{
year_x=year;
month_x=month;
day_x=day;
Toast.makeText(MainActivity.this,Integer.toString(day_x)+":"+Integer.toString(month_x)+":"+
Integer.toString(year_x),Toast.LENGTH_SHORT).show();
}
};
}
答案 0 :(得分:1)
您可以为此使用AlertDialog.THEME_HOLO_LIGHT
主题
DatePickerDialog dpd = new DatePickerDialog(context,
AlertDialog.THEME_HOLO_LIGHT, listener, year, month, day);
dpd.show();
答案 1 :(得分:1)
您可以使用此方法,但不推荐使用 android.R.style.Theme_Holo_Light_Dialog_MinWidth
public void showDatePicker(Context context, DatePickerDialog.OnDateSetListener listener) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(context, android.R.style.Theme_Holo_Light_Dialog_MinWidth, listener, year, month, day);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
答案 2 :(得分:0)
这不是错误,DatePickerDialog
默认显示Lollipop之上的Android版本的日历,并显示Lollipop之前的版本的微调器
如果要对所有版本使用传统的微调器,可以在here中引用多个解决方案