博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android】在某一时间段控制Button是否可点击
阅读量:6160 次
发布时间:2019-06-21

本文共 3325 字,大约阅读时间需要 11 分钟。

参考:

好久没更新博客了,或许是因为现在的工作比较轻松。这种现象不乐观啊。今天朋友问我,“一个按钮,比如我想让他周一和周三和周六的20:30-21:00这个时间段能点击其余时间不能点击”。我若假思索,便给他说了思路,然后顺便给朋友实现了下。首先,需要实现一个判断当前为礼拜几的方法,以及获取当前时间的方法,我把这两个方法放进了一个工具类。具体代码如下:

import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DataUtils {    private static final DateFormat FORMATOR_TIME = new SimpleDateFormat(            "HH:mm:ss");    public static String getStringTime(Date date) {        return FORMATOR_TIME.format(date);    }    /**     * 0 表示周末 ,1-6表示周一到周六     *      * @return     */    public static final int getCurrentDayOfWeek() {        return Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 1;    }}

核心代码:

import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.Button;public class MainActivity extends Activity {    Button btn;    private Timer mTimer;    private TimerTask mTimerTask;    protected static final int UPDATE_TEXT = 0;    private Handler mHandler;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button) findViewById(R.id.btn);        mTimer = new Timer();        mHandler = new Handler() {            @Override            public void handleMessage(Message msg) {                switch (msg.what) {                case UPDATE_TEXT:                    Date curDate = new Date(System.currentTimeMillis());// 获取当前时间                    String str_time = DataUtils.getStringTime(curDate);                    btn.setText(str_time);                    int a = DataUtils.getCurrentDayOfWeek();                    switch (a) {                    case 1:                        btn.setClickable(true);                        break;                    case 3:                        Calendar cal = Calendar.getInstance();// 当前日期                        int hour = cal.get(Calendar.HOUR_OF_DAY);// 获取小时                        int minute = cal.get(Calendar.MINUTE);// 获取分钟                        int minuteOfDay = hour * 60 + minute;// 从0:00分开是到目前为止的分钟数                        final int start = 20 * 60 + 30;// 起始时间 20:30的分钟数                        final int end = 20 * 60+59;// 结束时间 21:00的分钟数                        if (minuteOfDay >= start && minuteOfDay <= end) {                            System.out.println("在外围内");                            btn.setText("购买彩票!");                            btn.setClickable(true);                        } else {                            System.out.println("在外围外");                            btn.setClickable(false);                        }                        break;                    case 6:                        btn.setClickable(true);                        break;                    default:                        break;                    }                    break;                }            }        };        mTimerTask = new TimerTask() {            @Override            public void run() {                mHandler.sendEmptyMessage(UPDATE_TEXT);            }        };        mTimer.schedule(mTimerTask, 1000, 1000);    }}

转载于:https://www.cnblogs.com/yangcong/p/3862714.html

你可能感兴趣的文章
eclipse decompiler
查看>>
记一个搜索网盘资源的网站
查看>>
jdk1.7和jdk1.8的String的getByte方法的差异
查看>>
java父子进程通信
查看>>
Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
查看>>
Olap学习笔记
查看>>
Codeforces Round #431 (Div. 1)
查看>>
如何进行数组去重
查看>>
将标题空格替换为 '_' , 并自动复制到剪切板上
查看>>
List Collections sort
查看>>
Mysql -- You can't specify target table 'address' for update in FROM clause
查看>>
使用局部标准差实现图像的局部对比度增强算法。
查看>>
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>