Android学习笔记第二弹之事件处理
2014-03-08 11:39
344 查看
事件处理:OnclickListener 各种回调函数 使用Handle类在子线程和父线程之间的通信
通过组件的setOnClickListener()为组件配置响应的事件。分为三个顺序1.直接触发OnClickListener()接口的 OnTouch()函数。
2.触发组件的回调函数,public boolean onTouchEvent(MotionEvent event){}
3.触发activity的回调函数,public boolean onTouchEvent(MotionEvent event){}
自己编写程序验证事件处理
事件处理中,Handle类的使用。Handle类是通过子线程发送消息给主线程,主线程根据消息类型执行不同的事件。因为android规定子线程是不能够更改主线程的界面组件。
一般的Handle使用方法:
1.创建子线程,在子线程中控制刷新时间。并在到达时间片之后 Handler.sendMessage(Message)传输Message数据。
2.在主线程中新建Handle对象。重写public void handleMessage()方法,并通过此方法获得message,识别message.what的类型 改变UI组件特征。
代码如下
package com.example.handle;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
private TextView textView;
private Handler myHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.textView1);
this.myHandler=new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
if(msg.what==0x12){
textView.setText("随机数是"+Math.random());
}
}
};
new Thread(new Runnable(){
public void run(){
try {
while(true){
Message msg=new Message();
msg.what=0x12;
myHandler.sendMessage(msg);
Thread.sleep(1000);
//Log.d("lyb","睡了一秒" );
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}).start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
相关文章推荐
- Android中Bitmap和Drawable
- Android相对布局实现各种梅花效果
- 【Android-jni】JNI学习第一天
- android学习日记0--开发需要掌握的技能
- (转)Android学习:SeekBar实现音量调节
- Android中Spinner的使用方法
- FragmentTest学习笔记2
- FragmentTest学习笔记1
- Android五大布局详解
- android JNI学习七
- Android 众多的布局属性详解
- Android应用程序访问远程数据库(mysql) is not allowed to connect to this MySQL server
- Android入门第八篇之GridView(九宫图)
- Android 4.3 or later Bitmap 内存占用问题
- Android应用程序组件Content Provider应用实例
- Android宝典入门篇-进阶
- Android获取屏幕分辨率及DisplayMetrics简介 .
- Android中图表AChartEngine学习使用与例子
- Android开发时提示Your project contains error(s),please fix them be
- windows环境下下载android源码