Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Datepicker-始终显示日期-月份-年份微调器布局,而不是日历视图_Android - Fatal编程技术网

Android Datepicker-始终显示日期-月份-年份微调器布局,而不是日历视图

Android Datepicker-始终显示日期-月份-年份微调器布局,而不是日历视图,android,Android,在使用android datepicker时,我希望始终显示旧的日期-月份-年份微调器,而不是新的日历视图?我该怎么做 我希望所有运行任何android版本的设备都使用此选项: 并且不需要以下ui: android日期选择器有许多可用的库,例如:。也可以使用默认日期选择器。日期选择器可能就是您要找的那个我用这个答案完全解决了这个问题 主要使用这个: DatePickerDialog dialog = new DatePickerDialog(getActivity(),android.R.sty

在使用android datepicker时,我希望始终显示旧的日期-月份-年份微调器,而不是新的日历视图?我该怎么做

我希望所有运行任何android版本的设备都使用此选项: 并且不需要以下ui:


android日期选择器有许多可用的库,例如:。也可以使用默认日期选择器。日期选择器可能就是您要找的那个

我用这个答案完全解决了这个问题

主要使用这个:

DatePickerDialog dialog = new DatePickerDialog(getActivity(),android.R.style.Theme_Holo_Light_Dialog_MinWidth, this, year, month, day);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
完整代码:

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.widget.DatePicker;

import java.util.Calendar;


public class DatePickerFragment extends DialogFragment
        implements DatePickerDialog.OnDateSetListener {

    private Calendar calendar;
    private Calendar maxCalendar;
    private Calendar minCalendar;
    private DatePickerDialog.OnDateSetListener onDateSetListener;

    private static final String TAG = DatePickerFragment.class.getSimpleName();

    public void setup(Calendar calendar, DatePickerDialog.OnDateSetListener onDateSetListener){
        this.calendar = calendar;
        this.onDateSetListener = onDateSetListener;
    }

    public void setup(Calendar calendar, Calendar maxCalendar, DatePickerDialog.OnDateSetListener onDateSetListener){
        this.calendar = calendar;
        this.maxCalendar = maxCalendar;
        this.onDateSetListener = onDateSetListener;
    }

    public void setup(Calendar calendar, Calendar maxCalendar, Calendar minCalendar){
        this.calendar = calendar;
        this.maxCalendar = maxCalendar;
        this.minCalendar = minCalendar;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog dialog = new DatePickerDialog(getActivity(),android.R.style.Theme_Holo_Light_Dialog_MinWidth, this, year, month, day);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

        if(minCalendar!=null){
            dialog.getDatePicker().setMinDate(minCalendar.getTimeInMillis());
        }

        if(maxCalendar != null){
            dialog.getDatePicker().setMaxDate(maxCalendar.getTimeInMillis());
        }

        return dialog;
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        if(onDateSetListener != null){
            onDateSetListener.onDateSet(view, year, month, day);
        }else{
            LogUtils.w(TAG, "onDateSetListener callback is not initialized.");
        }
    }
}
这在所有版本的android中都非常有效。从4.4到6.0
虽然已测试,但不推荐使用,但支持良好。

使用日期选择器而不是日历视图,并添加以下xml属性:

android:datePickerMode="spinner"
android:calendarViewShown="false"
给出以下结果:


您是如何通过编程或xml将日期选择器添加到应用程序的?可能的重复
android:datePickerMode="spinner"
android:calendarViewShown="false"