• android日期和时间选择器(开发日志21)


    效果:

    布局代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".purchase.Delivery_help_purchase"
        android:background="#f2f2f2"
        android:orientation="vertical">
    
    
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFFFFF"
            android:orientation="vertical"
            >
            
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:background="@drawable/kuang">
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="2"
                    android:text="有效期至 :"
                    android:textSize="18sp"
                    android:gravity="center"
                    android:paddingLeft="10dp"
                    />
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:orientation="horizontal"
                    >
                    <TextView
                        android:id="@+id/tv_purchase_time"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="设置截止时间"
                        android:textSize="18sp"
                        android:gravity="center"
                        />
    
                </LinearLayout>
    
            </LinearLayout>
    
    
        </LinearLayout>
    
    
    </LinearLayout>

    Activity

    package com.example.express_delivery.purchase;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.app.Activity;
    import android.app.DatePickerDialog;
    import android.app.TimePickerDialog;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.DatePicker;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.TimePicker;
    
    import com.example.express_delivery.MainActivity;
    import com.example.express_delivery.Personal_PageActivity;
    import com.example.express_delivery.R;
    import com.example.express_delivery.activity.Address_InfoActivity;
    import com.example.express_delivery.activity.Address_InfopurActivity;
    import com.example.express_delivery.activity.Slide_getAddressActivity;
    
    import java.text.DateFormat;
    import java.util.Calendar;
    import java.util.Locale;
    
    public class Delivery_help_purchase extends AppCompatActivity {
    private TextView tv_purchase_time;
    
        DateFormat format = DateFormat.getDateTimeInstance();
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_delivery_help_purchase);
    
            if (getSupportActionBar() != null){
                getSupportActionBar().hide();
            }
    
            initView();
            onclick();
        }
    
        private void initView() {
            
            tv_purchase_time = findViewById(R.id.tv_purchase_time);
        }
    
        private void onclick() {
    
            tv_purchase_time.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showTimePickerDialog(Delivery_help_purchase.this,0,tv_purchase_time,calendar);
                    showDatePickerDialog(Delivery_help_purchase.this,0,tv_purchase_time,calendar);
                }
            });
        }/**
         * 日期选择
         * @param activity
         * @param themeResId
         * @param tv
         * @param calendar
         */
        public static void showDatePickerDialog(Activity activity, int themeResId, final TextView tv, final Calendar calendar) {
            // 直接创建一个DatePickerDialog对话框实例,并将它显示出来
            new DatePickerDialog(activity, themeResId, new DatePickerDialog.OnDateSetListener() {
                // 绑定监听器(How the parent is notified that the date is set.)
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    // 此处得到选择的时间,可以进行你想要的操作
                    tv.setText("" + year + "-" + (monthOfYear + 1) + "-" + dayOfMonth + "");
    
                }
            }
                    // 设置初始日期
                    , calendar.get(Calendar.YEAR)
                    , calendar.get(Calendar.MONTH)
                    , calendar.get(Calendar.DAY_OF_MONTH)).show();
    
        }
    
        /**
         * 时间选择
         * @param activity
         * @param themeResId
         * @param tv
         * @param calendar
         */
        public static void showTimePickerDialog(Activity activity,int themeResId, final TextView tv, Calendar calendar) {
            // Calendar c = Calendar.getInstance();
            // 创建一个TimePickerDialog实例,并把它显示出来
            // 解释一哈,Activity是context的子类
            new TimePickerDialog( activity,themeResId,
                    // 绑定监听器
                    new TimePickerDialog.OnTimeSetListener() {
                        @Override
                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                            CharSequence time_date = tv.getText();
                            tv.setText(time_date+" "+hourOfDay + " : " + minute);
                        }
                    }
                    // 设置初始时间
                    , calendar.get(Calendar.HOUR_OF_DAY)
                    , calendar.get(Calendar.MINUTE)
                    // true表示采用24小时制
                    ,true).show();
        }
    
    
    }
  • 相关阅读:
    状态机
    perl学习之五:列表和数组
    正则语言(转的 大额_skylar )
    算法分析-动态规划(最优二叉搜索树)
    算法分析-动态规划(矩阵链相乘,最长公共子序列,最长递增子序列)
    算法分析-动态规划(装配线调度)
    算法分析-leedcode正则题目
    算法分析-动态规划(cut_rod)
    算法分析-分治法的主方法【转的 凭海临风】
    正则表达式之match与exec【转的 楼兰之风】
  • 原文地址:https://www.cnblogs.com/022414ls/p/13547784.html
Copyright © 2020-2023  润新知