android时间选择器(API13以上)

public class UnloadCargoFragment extends Fragment implements OnClickListener {
    private View rootView;
    private TextView fahuo_date;// 时间选择器
    private int mYear, mMonth, mDay;//年月日
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        if (null == rootView) {
            rootView = inflater.inflate(R.layout.fragment_unloadcargo,
                    container, false);
            initView(rootView);
        }
        return rootView;
    }

    private void initView(View rootView) {
        fahuo_date = (TextView) rootView.findViewById(R.id.fahuo_date);
        fahuo_date.setOnClickListener(this);
        final Calendar ca = Calendar.getInstance();
        mYear = ca.get(Calendar.YEAR);
        mMonth = ca.get(Calendar.MONTH);
        mDay = ca.get(Calendar.DAY_OF_MONTH);
        // 设置时间,让系统在初始化时显示当前时间
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置时间格式
        fahuo_date.setText(df.format(new Date()));// new Date()为系统当前时间
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.fahuo_date:
            // 处理时间选择器
            showDatePickerDialog(rootView);
            break;
        case R.id.unload_listView:

            break;
        case R.id.refresh_unload:

            break;
        case R.id.add_train:

            break;
        default:
            break;
        }
    }
    
    // 日期选择器
    public void showDatePickerDialog(View view) {
        DateDialogMe ddm = new DateDialogMe();
        ddm.show(getFragmentManager(), "showMyDatet");
    }

    // 日期选择器
    @SuppressLint("ValidFragment")
    class DateDialogMe extends DialogFragment implements OnDateSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {

            DatePickerDialog dpd = new DatePickerDialog(getActivity(), mdateListener,
                    mYear, mMonth, mDay);

            return dpd;
        }

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {

        }

    }
    private DatePickerDialog.OnDateSetListener mdateListener = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            mYear = year;
            mMonth = monthOfYear;
            mDay = dayOfMonth;
            display();
        }
    };
    /**
     * 设置日期,用stringbuffer追加
     */
    public void display() {
        fahuo_date.setText(new StringBuffer().append(mYear).append("-")
                .append(mMonth + 1).append("-").append(mDay).append(""));

    }
}

补充:时间选择器(只要将上面的日期选择器的方法变为时间选择器,将监听的内容设为时间的即可)

//时间选择器
    public void showTimePickerDialog(View view){
        TimeDialogMe tpf=new TimeDialogMe();
        tpf.show(getFragmentManager(), "showMyTime");
    }

 //时间选择器
    class TimeDialogMe extends DialogFragment implements OnTimeSetListener {
 
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
             
            final Calendar calendar=Calendar.getInstance();
            int hour=calendar.get(Calendar.HOUR_OF_DAY);
            int minute=calendar.get(Calendar.MINUTE);
             
            TimePickerDialog tpd=new TimePickerDialog(getActivity(), mdateListener, hour, minute, DateFormat.is24HourFormat(getActivity()));
            return tpd;
        }
 
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            
        }
    }
原文地址:https://www.cnblogs.com/1925yiyi/p/7866958.html