消息机制及按钮实效性

三按钮的控制及实效。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.wang.testapp2.TestActivity6"
11     android:orientation="vertical">
12
13     <TextView
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="10"
17         android:id="@+id/tv_6"
18         android:layout_gravity="center"/>
19
20     <Button
21         android:layout_width="match_parent"
22         android:layout_height="wrap_content"
23         android:text="增加"
24         android:onClick="bt3_OnClick"
25         android:id="@+id/bt_3"/>
26
27     <Button
28         android:layout_width="match_parent"
29         android:layout_height="wrap_content"
30         android:text="减少"
31         android:onClick="bt3_OnClick"
32         android:id="@+id/bt_4"/>
33
34     <Button
35         android:layout_width="match_parent"
36         android:layout_height="wrap_content"
37         android:text="暂停"
38         android:onClick="bt3_OnClick"
39         android:id="@+id/bt_5"/>
40
41 </LinearLayout>

.xml

  1 package com.example.wang.testapp2;
  2
  3 import android.os.Handler;
  4 import android.os.Message;
  5 import android.support.v7.app.AppCompatActivity;
  6 import android.os.Bundle;
  7 import android.view.View;
  8 import android.widget.Button;
  9 import android.widget.TextView;
 10 import android.widget.Toast;
 11 import java.util.Random;
 12
 13
 14 public class TestActivity6 extends AppCompatActivity {
 15
 16     TextView tv_6;
 17     Button bt_3,bt_4,bt_5;
 18
 19     //定义Handler
 20
 21     int i=10;
 22
 23     Handler hl=new Handler()
 24
 25     {
 26         @Override
 27         public void handleMessage(Message msg) {
 28             super.handleMessage(msg);
 29
 30
 31
 32
 33             switch (msg.what)
 34             {
 35
 36                 case 1:
 37
 38                     bt_3.setEnabled(false);
 39                     bt_4.setEnabled(true);
 40                     bt_5.setEnabled(true);
 41
 42                     if (i==20)
 43                     {
 44                         bt_5.setEnabled(false);
 45                         return;
 46                     }
 47
 48                     i++;
 49
 50
 51                     tv_6.setText(i+"");
 52
 53                     //发送
 54                     hl.sendEmptyMessageDelayed(1,1000);
 55
 56                     hl.removeMessages(2);
 57
 58                     break;
 59
 60                 case 2:
 61
 62                     bt_3.setEnabled(true);
 63                     bt_4.setEnabled(false);
 64                     bt_5.setEnabled(true);
 65
 66                     if (i==1)
 67                     {
 68
 69                         bt_5.setEnabled(false);
 70                         return;
 71                     }
 72
 73                     i--;
 74
 75
 76                     tv_6.setText(i+"");
 77
 78                     //发送
 79                     hl.sendEmptyMessageDelayed(2,1000);
 80
 81                     hl.removeMessages(1);
 82
 83                     break;
 84
 85                 case 3:
 86                     bt_3.setEnabled(true);
 87                     bt_4.setEnabled(true);
 88                     bt_5.setEnabled(false);
 89
 90                     hl.removeMessages(1);
 91                     hl.removeMessages(2);
 92
 93                     break;
 94
 95
 96             }
 97         }
 98     };
 99
100     @Override
101     protected void onCreate(Bundle savedInstanceState) {
102         super.onCreate(savedInstanceState);
103         setContentView(R.layout.activity_test6);
104
105
106         tv_6=(TextView)findViewById(R.id.tv_6);
107         bt_3=(Button)findViewById(R.id.bt_3);
108         bt_4=(Button)findViewById(R.id.bt_4);
109         bt_5=(Button)findViewById(R.id.bt_5);
110
111
112         bt_3.setEnabled(true);
113         bt_4.setEnabled(true);
114         bt_5.setEnabled(false);
115     }
116
117     //3个按钮
118     public  void bt3_OnClick(View v)
119     {
120
121         switch (v.getId())
122         {
123             case  R.id.bt_3:
124
125                 //发送增加消息
126                 hl.sendEmptyMessage(1);
127
128                 break;
129
130             case  R.id.bt_4:
131
132                 //发送减少消息
133                 hl.sendEmptyMessage(2);
134
135                 break;
136
137             case  R.id.bt_5:
138
139                 //发送暂停消息
140                 hl.sendEmptyMessage(3);
141
142
143                 break;
144         }
145
146     }
147 }

.java

时间: 2024-11-25 14:36:23

消息机制及按钮实效性的相关文章

深入Windows内核——C++中的消息机制

<编程思想之消息机制>一文中我们讲了消息的相关概念和消息机制的模拟,本文将进一步聊聊C++中的消息机制. 从简单例子探析核心原理 在讲之前,我们先看一个简单例子:创建一个窗口和两个按钮,用来控制窗口的背景颜色.其效果如下: 图 2 :效果图 Win32Test.h #pragma once #include <windows.h> #include <atltypes.h> #include <tchar.h> //资源ID #define ID_BUTTO

java:从消息机制谈到观察者模式

本文接编程思想之消息机制,读者可以结合编程思想之消息机制一起阅读,也可以直接从本文开始阅读. 从简单的例子开始 同样,我们还是先看一个简单例子:创建一个窗口实现加法的计算功能.其效果如下: 图1: 加法计算 Calculator.java: import javax.swing.*; import javax.swing.border.BevelBorder; import java.awt.*; import java.awt.event.ActionEvent; import java.aw

MFC消息机制

何谓消息.消息处理函数.消息映射?消息简单的说就是指通过输入设备向程序发出指令要执行某个操作.具体的某个操作是你的一系列代码.称为消息处理函数. 在SDK中消息其实非常容易理解,当窗口建立后便会有一个函数(窗口处理函数)开始执行一个消息循环,我们还可以清楚的看到消息处理的脉络.一个switch case语句就可以搞定,消息循环直到遇到WM_QUIT消息才会结束,其余的消息均被拦截后调用相应的处理函数. 但在封装了API的MFC中,消息似乎变的有些复杂了,我们看不到熟悉的switch case语句

(转载)Windows消息机制

文章出处:http://www.cnblogs.com/watsonyin/archive/2005/12/12/295536.html Windows消息机制 Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的.如果不理解Windows消息处理机制,肯定无法深入的理解Windows编程.可惜很多程序员对Windows消息只是略有所闻,对其使用知之甚少,更不了解其内部实现原理,本文试着一步一步向大家披露我理解的Windows消息机制.可以说,

iOS开发系列--通知与消息机制

概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地通知:另一类是推送通知,也叫远程通知.两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同.今天就和大家一块去看一下如何在iOS中实现这两种机制,并且在文章后面会补充通知中心的内容避免初学者对两种概念的混淆. 本地通知 推送通

[转]易语言消息机制分析(消息拦截原理)

标 题: [原创]易语言消息机制分析(消息拦截原理)作 者: 红绡枫叶时 间: 2014-12-17,12:41:44链 接: http://bbs.pediy.com/showthread.php?t=195626 我自己做了个易语言的sig签名,方便分析的时候用.易语言例子是静态编译的.版本 5.11易语言其实是基于mfc的,它依然需要mfc的消息派发机制,只不过,自己当了系统与用户间的代理人.所有的消息都要经它转发而已.我在MFC的消息派发函数_AfxDispatchCmdMsg下断点,总

【win32】day04-Win32消息机制

消息机制 过程驱动:程序是按照我们预先定义好的顺序 执行,每执行一步,下一步都已经按照预定的顺序继续执行,直到程序结束. 事件驱动:程序的执行顺序是无序的.某个时间点所执行的代码,是由外界通知.由于我们无法决定用户执行顺序,所以代码的执行也是无序. Win32的消息机制 -事件驱动. Win32消息程序 2.1 Win32窗口注册 2.2 Win32窗口创建 2.3 WIn32消息循环 2.3.1 GetMessage BOOL GetMessage( LPMSG lpMsg,//存放获取到的消

iOS开发系列--通知与消息机制--转

来自:http://www.cocoachina.com/ios/20150318/11364.html 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地通知:另一类是推送通知,也叫远程通知.两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同.今天就和大家一块去看一下如何

编程思想之消息机制

编程思想之消息机制 消息机制 从一个剧情开始 路遥的<平凡的世界>因为翻拍成电视剧,又再次火起来了!我们就从这里开始吧,其小说是以这样一个场景开头的: 在一个半山腰县立高中的大院坝里,在一个校园内的南墙根下,按班级排起了十几个纵队的年轻男女,各班的值日生正忙碌地给众人分发饭菜-- 菜分为甲.乙.丙三等,甲菜以土豆.白菜.粉条为主,还有可人大肉片,乙菜没有肉,丙菜只有清水煮白萝卜.主食也分为三等:白面馍,玉米面馍,高粱面馍,白.黄.黑分别代表了三种差别,学生们戏称欧洲.亚洲.非洲.每个人的饭菜都