Handler的学习(二)

package com.example.handledemos;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Handler.Callback;

import android.os.Message;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

/**

* Handler的用法

* 1、Handler用于发送和处理消息。

* 2、在多线程中更新ui。

* @author lzl

*传入的callback类用于拦截handler发送的消息。

*/

public class MainActivity extends Activity implements OnClickListener {

private TextView textView;

private ImageView imageView;

private Button button;

int images[] = {R.drawable.iamge1,R.drawable.image2,R.drawable.image3};

private int index;

private MyRunnerble myrunnerble = new MyRunnerble();   //这里是创建对象

private Handler handler = new Handler(new Callback() {    //callback类 用于拦截发送的信息。

@Override

public boolean handleMessage(Message msg) {

if(msg.arg1 == 10){

Toast.makeText(getApplicationContext(), "---"+msg.arg1, Toast.LENGTH_SHORT).show();

handler.removeCallbacks(myrunnerble);

return true;

}

return false;

}

}){

public void handleMessage(Message msg) {

Toast.makeText(getApplicationContext(), "***"+msg.arg1, Toast.LENGTH_SHORT).show();

}

};

class MyRunnerble implements Runnable{

@Override

public void run() {

index++;

index = index % 3;

handler.postDelayed(myrunnerble, 1000);   //在线程中执行,延迟时间1秒。

imageView.setImageResource(images[index]);

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

imageView = (ImageView) findViewById(R.id.imageView1);

button = (Button) findViewById(R.id.button1);

button.setOnClickListener(this);

handler.postDelayed(myrunnerble, 1000);

}

@Override

public void onClick(View view) {

//        handler.removeCallbacks(myrunnerble);   //通过点击事件使图片停止切换。

Message message = new Message();

message.arg1 = 10;

handler.sendMessage(message);

}

}

时间: 2024-10-11 15:29:03

Handler的学习(二)的相关文章

Jquery Easy UI初步学习(二)datagrid的使用

第一篇学的是做一个管理的外框,接着就是数据datagrid绑定了,这里我用asp.net mvc3来做的,主要就是熟悉属性.方法. 打开easyui的demo 就可以看到如下一段代码: 和上篇一样class="easyui-datagrid", data-options="...",这是一样的,其他我在网上查了查,并做了整理 DataGrid 属性 参数名 类型 描述 默认值 title string Datagrid面板的标题 null iconCls strin

Jetty学习二:配置概览-怎么配置Jetty

Jetty POJO配置 Jetty的核心组件是Plain Old Java Objects(POJOs):配置Jetty的大部分工作就是在Jetty POJOs上的初始化.装配和设置域的处理,你能通过以下的方式来实现:  1)直接通过Java代码初始化和装配Jetty对象.这个在后面Embedding Jetty讲. 2)用Jetty XML配置(一个控制反转(IoC)框架)初始化和装配Jetty对象.etc/jetty.xml文件是基本的Jetty XML配置文件,但有一些其它的etc/je

SpringMVC入门学习(二)

SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. model.addAttribute()的使用 model接口的源代码: 由图可知,在addAttribute()中有两种入参方式,一种是指明名字var1,一种是不指明名字var1.在不指明名字中,会通过相近的去寻找. 在addAttribute()中,我们可以放任何对象: 首先先导入jsp标签maven

DjangoRestFramework学习二之序列化组件、视图组件

目录 DjangoRestFramework学习二之序列化组件.视图组件 一 序列化组件 二 视图组件(Mixin混合类) DjangoRestFramework学习二之序列化组件.视图组件 本节目录 一 序列化组件 首先按照restful规范咱们创建一些api接口,按照下面这些形式写吧: Courses --- GET ---> 查看数据----->返回所有数据列表[{},{},] Courses--- POST --->添加数据 -----> 返回添加的数据{ } course

[Python 学习] 二、在Linux平台上使用Python

这一节,主要介绍在Linux平台上如何使用Python 1. Python安装. 现在大部分的发行版本都是自带Python的,所以可以不用安装.如果要安装的话,可以使用对应的系统安装指令. Fedora系统:先以root登入,运行 yum install python Ubuntu系统:在root组的用户, 运行 sudo apt-get install python 2. 使用的Python的脚本 Linux是一个以文件为单位的系统,那么我们使用的Python是哪一个文件呢? 这个可以通过指令

OpenCV for Python 学习 (二 事件与回调函数)

今天主要看了OpenCV中的事件以及回调函数,这么说可能不准确,主要是下面这两个函数(OpenCV中还有很多这些函数,可以在 http://docs.opencv.org/trunk/modules/highgui/doc/user_interface.html 找到,就不一一列举了),然后自己做了一个简单的绘图程序 函数如下: cv2.setMouseCallback(windowName, onMouse[, param]) cv2.createTrackbar(trackbarName,

Makefile持续学习二

Makefile概述 一.Makefile里有什么? Makefile里主要包含5个东西:显式规则.隐晦规则.变量定义.文件指示和注释 1.显式规则:显式规则说明如恶化生成一个或多的目标文件,包含要生成的文件,文件的依赖文件,生成的命令 2.隐晦规则:由make自动推动功能完成 3.变量定义:变量一般都是字符串,类似C语言中的宏定义,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上 4.文件指示: 在一个Makefile中引用另一个Makefile 根据某些情指定Makefil

redis ruby客户端学习( 二)

接上一篇redis ruby客户端学习( 二) 对于redis的五种数据类型:字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets),上一篇介绍了字符串. 1,哈希(Map) hset.设置 key 指定的哈希集中指定字段的值.如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联.如果字段在哈希集中存在,它将被重写. require "redis" r = Redis.new r.hset 'my_h

Duilib学习二 第一个程序 Hello World

Duilib学习二  第一个程序 Hello World #pragma once #include <UIlib.h> using namespace DuiLib; #ifdef _DEBUG # ifdef _UNICODE # pragma comment(lib, "DuiLib_ud.lib") # else # pragma comment(lib, "DuiLib_d.lib") # endif #else # ifdef _UNICOD

Oracle学习(二):过滤和排序

1.知识点:可以对照下面的录屏进行阅读 SQL> --字符串大小写敏感 SQL> --查询名叫KING的员工信息 SQL> select * 2 from emp 3 where ename = 'KING'; SQL> --日期格式敏感 SQL> --查询入职日期为17-11月-81的员工 SQL> select * 2 from emp 3 where hiredate='17-11月-81'; --正确例子 SQL> ed 已写入 file afiedt.b