zoukankan      html  css  js  c++  java
  • Android 给Button加个监听

    1、日期设置控件:DatePickerDialog

    2、时间设置控件:TimePickerDialog

     

    实例代码

    1、页面添加两个Button,单击分别显示日期设置控件和时间设置控件,还是有TextView控件,用于显示设置后的系统时间


     

    1. [代码]main.xml 

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
        Android:orientation="vertical"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        >
    <TextView  Android:id="@+id/dateAndTime"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:text="@string/hello"
        />
    <Button    Android:id="@+id/setDate"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="Set the Date"></Button>
    <Button    Android:id="@+id/setTime"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="Set the Time"></Button>
    </LinearLayout>

    2. [代码]ChronoDemo.java  

    package yyl.Android;
    
    import java.text.DateFormat;
    import java.util.Calendar;
    import java.util.Locale;
    
    import Android.app.Activity;
    import Android.app.DatePickerDialog;
    import Android.app.TimePickerDialog;
    import Android.os.Bundle;
    import Android.view.View;
    import Android.widget.Button;
    import Android.widget.DatePicker;
    import Android.widget.TextView;
    import Android.widget.TimePicker;
    
    public class ChronoDemo extends Activity {
       //获取日期格式器对象
        DateFormat fmtDateAndTime = DateFormat.getDateTimeInstance();
        //定义一个TextView控件对象
        TextView dateAndTimeLabel = null;
        //获取一个日历对象
        Calendar dateAndTime = Calendar.getInstance(Locale.CHINA);
       
       
        //当点击DatePickerDialog控件的设置按钮时,调用该方法
        DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener()
        {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                //修改日历控件的年,月,日
                //这里的year,monthOfYear,dayOfMonth的值与DatePickerDialog控件设置的最新值一致
                dateAndTime.set(Calendar.YEAR, year);
                dateAndTime.set(Calendar.MONTH, monthOfYear);
                dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);   
                //将页面TextView的显示更新为最新时间
                updateLabel();           
            }       
        };
       
    
    
        TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
           
            //同DatePickerDialog控件
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
                dateAndTime.set(Calendar.MINUTE, minute);
                updateLabel();
               
            }
        };
       
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
           
            //得到页面设定日期的按钮控件对象
            Button dateBtn = (Button)findViewById(R.id.setDate);
            //设置按钮的点击事件监听器
            dateBtn.setOnClickListener(new View.OnClickListener() {
               
                @Override
                public void onClick(View v) {
                    //生成一个DatePickerDialog对象,并显示。显示的DatePickerDialog控件可以选择年月日,并设置
                    new DatePickerDialog(ChronoDemo.this,
                            d,
                            dateAndTime.get(Calendar.YEAR),
                            dateAndTime.get(Calendar.MONTH),
                            dateAndTime.get(Calendar.DAY_OF_MONTH)).show();               
                }
            });
           
            Button timeBtn = (Button)findViewById(R.id.setTime);
            timeBtn.setOnClickListener(new View.OnClickListener() {
               
                //同上原理
                @Override
                public void onClick(View v) {
                    new TimePickerDialog(ChronoDemo.this,
                            t,
                            dateAndTime.get(Calendar.HOUR_OF_DAY),
                            dateAndTime.get(Calendar.MINUTE),
                            true).show();
                   
                }
            });
           
            dateAndTimeLabel=(TextView)findViewById(R.id.dateAndTime);
           
            updateLabel();
        }
       
        //更新页面TextView的方法
        private void updateLabel() {
            dateAndTimeLabel.setText(fmtDateAndTime
            .format(dateAndTime.getTime()));
            }
    }

    来自: 源码天堂
  • 相关阅读:
    JavaScript 数据类型判断
    使用渐进增强的方式美化复选框样式
    使用 Bootstrap 和 HTML5 Boilerplate 开始一个项目
    CSS基础知识之文本属性二三事
    精简CSS代码
    CSS选择器特殊性与重要性
    面试官:能解释一下javascript中的this吗
    VueRouter爬坑第四篇-命名路由、编程式导航
    Vuex实践(下)-mapState和mapGetters
    Vuex实践(中)-多module中的state、mutations、actions和getters
  • 原文地址:https://www.cnblogs.com/riskyer/p/3331387.html
Copyright © 2011-2022 走看看