如何更改Android

时间:2016-09-10 19:42:15

标签: java android xml android-datepicker

我目前正在制作注册表,其中一个字段是针对用户的出生日期。我想使用datepicker,但是我不希望日历布局如下所示:

enter image description here

我希望布局看起来像这样,这样就更容易选择年份和月份而不必滚动所有内容:

enter image description here

但是我不知道如何处理这个问题,或者将什么放在styles.xml文件中。任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:11)

将此添加到style.xml

<style name="date_picker_theme" parent="@android:style/Widget.DatePicker">

然后你应该为你的日期选择器应用样式:

<DatePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/datePicker"
        style="@style/date_picker_theme" />

答案 1 :(得分:3)

使用

创建样式
import React from 'react';
import ReactPDF from 'react-pdf/build/entry.webpack';

const About = () => {
   return (
    <div>
        <ReactPDF file="../pdf/Resume.pdf" />
    </div>
  )
}

export default About;

然后在自定义片段对话框xml

<style name="DatePicker" parent="@android:style/Theme.Holo.Light">
    <item name="android:datePickerStyle">@android:style/Widget.DatePicker</item>
</style>

链接:http://yogeshkalwar.blogspot.in/2017/08/custom-spinner-datepicker-supporting-n70.html

答案 2 :(得分:0)

要全局设置DatePicker样式,请将以下内容添加到style.xml,或调整现有内容:

<resources>
  <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:datePickerStyle">@style/MyDatePicker</item>
  </style>
  ...
</resources>

并在style.xml或单独的文件中定义您的自定义DatePicker样式,例如:

<resources>
  <style name="MyDatePicker" parent="@android:style/Widget.DatePicker">
    <item name="android:calendarViewShown">false</item>
    <item name="android:datePickerMode">spinner</item>
  </style>
</resources>

答案 3 :(得分:0)

DatePickerDialog有一个方便的方法,您可以在其中设置所需的布局。

public DatePickerDialog(@NonNull Context context, @StyleRes int themeResId,
        @Nullable OnDateSetListener listener, int year, int monthOfYear, int dayOfMonth) {
    this(context, themeResId, listener, null, year, monthOfYear, dayOfMonth);
}


public static final int MODE_SPINNER = 1;
public static final int MODE_CALENDAR = 2;

在themesResId中传递1或2可以达到目的。

答案 4 :(得分:0)

可能为时已晚,但是您可以像这样通过编程方式进行设置。
将其应用到您的onClick侦听器中。

        DatePickerDialog datePicker = new DatePickerDialog(
                this,
                android.R.style.Theme_Holo_Light_Dialog_MinWidth,
                datePickerListener,
                cal.get(Calendar.YEAR),
                cal.get(Calendar.MONTH),
                cal.get(Calendar.DAY_OF_MONTH));
        datePicker.setCancelable(false);
        datePicker.setTitle("Select the date");
        datePicker.show();

您想要的android.R.style.Theme_Holo_Light_Dialog_MinWidth创建样式。
希望对别人有帮助。

答案 5 :(得分:0)

嗨,尝试这种最简单的方法...

public void datePicker(final Context context, final EditText editText, final String type) {
        Calendar calendar = Calendar.getInstance();
        final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
        DatePickerDialog datePickerDialog = new DatePickerDialog(context, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(android.widget.DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                Calendar newDate = Calendar.getInstance();
                newDate.set(year, monthOfYear, dayOfMonth);
                newDate.set(year, monthOfYear, dayOfMonth);
                editText.setText(dateFormatter.format(newDate.getTime())

            }

        }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
//        datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
        datePickerDialog.show();
    }

style.xml中的android在行下方添加

 <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
        <item name="colorAccent">@color/AppDarkBlue</item>
    </style>