Android:日期选择器对话框主题

Android:日期选择器对话框主题,android,Android,我正在做一个Android开发,我对日期选择器对话框有疑问 单击按钮时,会弹出一个日期选择器,用户应该能够选择日期 代码已成功编译,当我单击一个按钮时,会弹出如图1所示的对话框,但我希望日期选择器如图2所示 请让我知道我必须在哪里更改代码 代码如下: public class MainActivity extends AppCompatActivity { Button B1; int day_x, month_x, year_x; static final int id=0; @Ove

我正在做一个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();
    }
     };
     }


您可以使用
AlertDialog.THEME\u HOLO\u LIGHT
THEME进行此操作

DatePickerDialog dpd = new DatePickerDialog(context, 
  AlertDialog.THEME_HOLO_LIGHT, listener, year, month, day);

dpd.show();

您可以使用此方法,但不推荐使用android.R.style.Theme\u Holo\u Light\u Dialog\u 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();
}

这不是一个bug,
DatePickerDialog
默认显示棒棒糖以上android版本的日历,并显示棒棒糖之前版本的微调器


如果要在所有版本中使用传统微调器,可以参考

中的多个解决方案。是否使用API 24版本?AlertDialog。主题从API 23起不再推荐: