首页 > 代码库 > 【Android】在某一时间段控制Button是否可点击
【Android】在某一时间段控制Button是否可点击
参考:http://blog.chinaunix.net/uid-9688646-id-1998393.html
好久没更新博客了,或许是因为现在的工作比较轻松。这种现象不乐观啊。今天朋友问我,“一个按钮,比如我想让他周一和周三和周六的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); }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。