android之消息机制(二)
消息通道:Looper
首先编写main.xml文件
代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/info" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <Button android:id="@+id/but" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="启动"/> </LinearLayout>
然后改写Activity.java类
代码如下:
package com.example.myfirstproject; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.app.Activity; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.*; public class MainActivity extends Activity { private TextView info; private Button but; private static final int SET = 1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.info = (TextView)super.findViewById(R.id.info); this.but = (Button)super.findViewById(R.id.but); this.but.setOnClickListener(new OnClickListenerlmpl()); } private class OnClickListenerlmpl implements OnClickListener{ public void onClick(View view){ switch(view.getId()){ case R.id.but: Looper looper = Looper.myLooper(); MyHandler myHandler = new MyHandler(looper); myHandler.removeMessages(0); String data = "hahahaha"; Message msg = myHandler.obtainMessage(SET,1,1,data); myHandler.sendMessage(msg); break; } } } private class MyHandler extends Handler{ public MyHandler(Looper looper){ super(looper); } public void handleMessage(Message msg){ switch(msg.what){ case 1: MainActivity.this.info.setText(msg.obj.toString()); } } } }
运行效果:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。