android学习笔记之handler简单实用

package com.fukang.studyproject;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	TextView tv_1;
	Button btn_1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main); //页面布局为一个textview和一个button
		tv_1 = (TextView) findViewById(R.id.tv_1);
		btn_1 = (Button) findViewById(R.id.btn_1);
		final Handler handler = new Handler() {//实例化一个Handler对象
			@Override
			public void handleMessage(Message msg) {//重写handleMessage方法
				// TODO Auto-generated method stub
				super.handleMessage(msg);
				if (msg.what == 1) {//如果传入的参数msg.what == 1;
					tv_1.setText("you click the button"); //改变textview中的文字
				}
			}
		};
		btn_1.setOnClickListener(new OnClickListener() { //为button设置点击监听器,点击该button时触发

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Message msg = new Message();//实例化Message对象
				msg.what = 1;//给msg.what赋值1,用于测试
				handler.handleMessage(msg);//使用刚才实例化的handler的handleMessage方法处理该msg
			}
		});
	}
}


以我个人理解,在加载该activity时执行的oncreate方法中,首先需要实例化一个Handler类的对象handler,用于处理之后的Message对象;

该handler不能直接使用,需要重写handleMessage方法,在该方法中写入需要实现的业务逻辑代码,即改变textview的文本内容;

在button的点击事件监听器(btn.setOnClickListener())中,实例化Message消息类对象,并给msg.what 赋值 1,(该值用于测试),然后调用已经实例化的handler对象的handleMessage方法,并传入msg作为参数执行该方法。


扩展学习:添加Timer计时器类

只需在button的点击事件中实例化Timer()类,执行schedule方法,传入三个参数定时器任务TimerTask、操作延时毫秒数、执行周期毫秒数;

在TimerTask中重写run方法,在其中写入要在规定时间执行的操作即可;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值