Android Studio: sobre el uso de DateTimePicker

Primero, el diagrama de efectos.
solo año
Año, mes, día y hora
El método utilizado es hacer referencia a la biblioteca de terceros.

Los pasos específicos son (tome la segunda representación como ejemplo):

  1. Introducido en build.gradle (compilación hace referencia a la versión inferior de AS, pero la versión superior abandona la compilación y usa la implementación)
implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1'
  1. y luego definir el objeto
    private SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private TimePickerDialog pickerdialog;
  1. Acerca de los controles xml
overTime = (TextView) findViewById(R.id.tv_overTime);
  1. Luego llámalo en la función onCreate
 overTime.setOnClickListener( new OnPickOverYearClickListener(this,overTime));
  1. Luego implemente OnPickOverYearClickListener(this,overTime) fuera de la función onCreat:
    public class OnPickOverYearClickListener implements View.OnClickListener, OnDateSetListener {
        public OnPickOverYearClickListener(AddActivity addActivity, TextView overTime) {
        }

        @Override
        public void onClick(View view) {
            pickerdialog = new TimePickerDialog.Builder().setType(Type.ALL).setCallBack(this).
                    setTitleStringId("请选择时间").setCurrentMillseconds(System.currentTimeMillis())
                    .setThemeColor(getResources().getColor(R.color.green))
                    .setWheelItemTextSize(15).build();
            pickerdialog.show(getSupportFragmentManager(),"abc");
        }

        @Override
        public void onDateSet(TimePickerDialog timePickerView, long millseconds) {
            //显示overTime
            overTime.setText(getDateToString(millseconds));
//            Toast.makeText(this, "你选择的时间:"+getDateToString(millseconds), Toast.LENGTH_SHORT).show();
            //将选择的时间(此时是秒的形式)转换成TimeStamp存进数据库
            signOverTime = getDateToTimeStamp(millseconds);
        }

        public String getDateToString(long time){
            Date d = new Date(time);
            return sf.format(d);
        }

        public Timestamp getDateToTimeStamp(long time){
            Timestamp timestamp = new Timestamp(time);
            System.out.println("d----"+timestamp);
            return timestamp;
        }
    }

Nota: Puede reemplazar Type.ALL en initTimeDialog(Type.ALL) con otros tipos, como solo año-mes, año-mes-día, tiempo dividido, etc., por lo que si necesita realizar la primera representación, configure Escriba Simplemente reemplace .ALL con Type.YEAR.
Archivo adjunto: si necesita implementar dos DateTimePickers en la misma actividad, simplemente cambie el nombre de la función de OnPickOverYearClickListener(this,overTime) e impleméntelo. Si solo necesita el año y cambia el año a int y lo almacena en la base de datos, solo necesita convertir la hora actual (es decir, hora actual, cuántos segundos quedan en este momento) a Fecha a través de la función goToString (en esta vez, en realidad son las 0:00 del 1 de enero, formato xx) y luego conviértalo a String, luego use String.subString(0,4) para obtener los primeros cuatro dígitos (es decir, el año) y luego conviértalo al tipo int
.

Supongo que te gusta

Origin blog.csdn.net/zzzzzwbetter/article/details/129221136
Recomendado
Clasificación