标签: android-datepicker

datepicker的风格与活动不同

我有自定义样式的活动,我希望我的活动有一个自定义标题栏,所以我创建了以下样式:

<style name="costum_titlebar">
    <item name="android:background">@color/titlebar_background</item>
</style>

<style name="CustomTheme" parent="android:Theme">
    <item name="android:windowTitleSize">@dimen/titlebar_size</item>
    <item name="android:windowTitleBackgroundStyle">@style/costum_titlebar</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在清单中我使用:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/CustomTheme" >
Run Code Online (Sandbox Code Playgroud)

在我使用的活动中:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.setting_activity_titlebar);
Run Code Online (Sandbox Code Playgroud)

到目前为止它很好并且工作正常,我有自定义标题栏的活动.
现在我想使用datePickerDialog.问题是对话框看起来很旧:

在此输入图像描述

但我希望它看起来像这样:

在此输入图像描述

我也有这种风格:

<style name="AppBaseTheme" parent="android:Theme.Light">
Run Code Online (Sandbox Code Playgroud)

所以我用它来创建DatePickerDialog,如下所示:

new DatePickerDialog(getActivity(),R.style.AppBaseTheme, this, year, month, day);
Run Code Online (Sandbox Code Playgroud)

但主题不适用.

只是为了测试,我创建了一个默认样式的第二个应用程序,只有一个按钮来打开日期选择器,所以datepicker看起来像我想要的.两个应用都有android:minSdkVersion="8"

我认为问题出在自定义标题栏上,那么我如何才能获得所需风格的自定义标题栏和日期选择器呢?

编辑:

我改变android:minSdkVersion="11"

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

new DatePickerDialog(getActivity(),R.style.datePickerTheme, this, year, month, day);

但结果仍然是一样的.

android android-datepicker android-theme android-styles

6
推荐指数
3
解决办法
3万
查看次数

两个日期选择器在相同的活动android

我有一项活动,我需要接受两个日期,开始日期和结束日期.我有两个按钮,点击它们会显示日期选择器.输入日期后,我需要使用SharedPreferences存储此日期.我正在使用本教程:

http://developer.android.com/guide/topics/ui/controls/pickers.html

我在两个日期选择器上看到了问题,但没有一个使用DialogFragment.他们使用已弃用的函数,我真的不想使用它们,因为我听说最好使用DialogFragment.

现在我该如何处理两个日期选择器?我怎么知道在onDateSet函数中点击了哪个按钮(startButton或endButton)?有没有办法在我点击按钮时创建的DialogFragment中存储视图ID,以便我可以在onDateSet中访问它?

任何帮助都会很棒,谢谢.

android android-datepicker android-dialogfragment

6
推荐指数
1
解决办法
6005
查看次数

在Lollipop设备中使用Kit Kat DatePicker

我正在尝试DatePickerDialog在我的应用中显示一个.但我意识到,DatePickerDialog显示出来取决于手机操作系统.我的问题是我如何在操作系统中显示KitKat风格?我知道这是可能的,因为Facebook等一些应用程序正在使用它.DatePickerLollipop

这就是我要的

日期选择器

android android-datepicker datepickerdialog android-4.4-kitkat android-5.0-lollipop

6
推荐指数
1
解决办法
4449
查看次数

如何在android中设置日期选择器的最小和最大限制?

我正在开发一个应用程序,我正在使用自定义日期和时间选择器.我已经创建了一个对话框,里面我现在分别显示日期和时间选择器,我想设置日期选择器的最小和最大限制.例如,一个人不应该从今天开始选择前一个日期,也不能超过一个月.这是我的代码

  AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            final DatePicker picker = new DatePicker(getActivity());
            try {
                Field f[] = picker.getClass().getDeclaredFields();
                for (Field field : f) {
                    if (field.getName().equals("mYearPicker") || field.getName().equals("mYearSpinner")) {
                        field.setAccessible(true);
                        Object yearPicker = new Object();
                        yearPicker = field.get(picker);
                        ((View) yearPicker).setVisibility(View.GONE);
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            picker.setCalendarViewShown(false);
            picker.setMinDate(new  Date().getTime());

            builder.setTitle("Please select date on which you would be leaving :")
                    .setView(picker)
                    .setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    SimpleDateFormat parseFormat = new SimpleDateFormat("EEE dd …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker

6
推荐指数
1
解决办法
7512
查看次数

如何更改Android的Datepicker样式

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

在此输入图像描述

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

在此输入图像描述

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

java xml android android-datepicker

6
推荐指数
2
解决办法
2万
查看次数

无法让Android DatePickerDialog切换到Spinner模式

我正在构建一个使用DatePickerDialog的应用程序,允许用户选择他们的生日.这是现在加载对话框的代码:

private void selectBirthdate() {
    int year, month, day;
    if (mBirthDate == null) {
        year = DEF_YEAR;
        month = DEF_MON;
        day = DEF_DAY;
    }
    else {
        year = mBirthDate.get(Calendar.YEAR);
        month = mBirthDate.get(Calendar.MONTH);
        day = mBirthDate.get(Calendar.DAY_OF_MONTH);
    }
    new DatePickerDialog(
            getActivity(),
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    mBirthDate = new GregorianCalendar();
                    mBirthDate.set(Calendar.YEAR, year);
                    mBirthDate.set(Calendar.MONTH, month);
                    mBirthDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                    if (mTxtBirthDate != null) {
                        mTxtBirthDate.setText(mBirthDateFormat.format(mBirthDate.getTime()));
                    }
                }
            },
            year,
            month,
            day
    ).show();
}
Run Code Online (Sandbox Code Playgroud)

这是我加载对话框时的样子: 原始对话

但是,他们希望能够使用旧式微调器DatePicker,因为在新的日历视图中,用户并不总是可以更改年份.所以我一直在研究这个主题,根据我读过的内容,应该可以使用主题强制DatePickerDialog进入Spinner模式.所以这就是我所做的. …

android android-datepicker android-alertdialog android-styles

6
推荐指数
2
解决办法
3833
查看次数

材质日期选择器选择的日期圈偏离中心,如何使其适合中心?

链接到屏幕截图

这是我单独用于材质日历的样式,除了选定的日期圈之外,一切都很完美

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorAppBackground</item>
    <item name="android:actionMenuTextAppearance">@style/RobotoMenuText</item>
    <item name="titleTextAppearance">@style/RobotoMenuText</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="titleTextStyle">@style/RobotoMenuText</item>
    <item name="colorSurface">@color/colorAppGreen</item>
    <item name="materialCalendarTheme">@style/CalenderTheme</item>
    <item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item>
    <item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
</style>
<style name="CalenderTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorAppBackground</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-datepicker android-studio material-design material-components-android

6
推荐指数
1
解决办法
1501
查看次数

如何处理方向更改以便Fragment不加载?

EditTextUI中的一行获得焦点时,将DatePickerFragment启动用户输入日期.

在方向更改时,如果EditText线具有焦点和先前输入的日期(这样length() > 0),我不希望片段自动显示.

有没有办法修改或添加代码,以便如果新创建活动并且该EditText行具有焦点,它将不会自动启动 DatePickerFragment

做某事是不是一个好主意onResume()

或做的东西savedInstanceState()!=null

public class Activity extends AppCompatActivity {
...
EditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
...
    if (hasFocus && (EditText.getText().length() == 0)) {
       DatePickerFragment newFragment = new DatePickerFragment();
       newFragment.show(getSupportFragmentManager(), "datePicker");
    }
    else if (hasFocus && (EditText.getText().length() > 0)) {
       ...
       DatePickerFragment newFragment = new DatePickerFragment();
       newFragment.show(getSupportFragmentManager(), "datePicker");
    }
 }
});
}
Run Code Online (Sandbox Code Playgroud)

android android-datepicker android-fragments

5
推荐指数
1
解决办法
738
查看次数

如何在DatePickerDialog中删除多余的空间(在Android M&N上可见)?

我在DatePickerDialog的右侧看到一个额外的空间,仅在Android M&N版本上。在基于L的版本中未观察到。这是屏幕截图:

有人遇到过这个问题吗?

这是DatePickerFragment的实现:

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

    public static DatePickerFragment newInstance(int day, int month, int year)
    {
        DatePickerFragment frag = new DatePickerFragment();
        Bundle args = new Bundle();
        args.putInt("day", day);
        args.putInt("month", month);
        args.putInt("year", year);
        frag.setArguments(args);
        return frag;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        int year = getArguments().getInt("year");
        int month = getArguments().getInt("month");
        int day = getArguments().getInt("day");
        DatePickerDialog datePickerDialog =new DatePickerDialog(getActivity(), this, year, month, day);
        datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
        return datePickerDialog;
    }

    @Override
    public void onDateSet(DatePicker …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker android-styles

5
推荐指数
1
解决办法
925
查看次数

如何在Android Dialog datepicker中将默认显示设置为年份

我试图弄清楚如何在Android Dialog中设置默认显示年份DatePicker.我们的场景是第一个用户必须选择年份和月份,最后在对话框中选择日期DatePicker.对于此要求,我们需要在打开对话框时打开年度显示.

PFB图像链接.请参考右侧图像,默认情况下应该打开.

日期选择器

android android-datepicker

5
推荐指数
1
解决办法
2488
查看次数