android中利用handler改变textView的内容

来源:互联网 发布:心动网络 编辑:程序博客网 时间:2024/06/07 05:53
  先写一个TextView 和Button
<TextView    android:text="TextView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/textView" /><Button    android:id="@+id/button1"    android:padding="0dp"    android:layout_margin="0dp"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="更新"    android:layout_below="@+id/textView"    android:textAllCaps="false"/>

在Button中添加点击事件:

private Button button;private TextView textView;private Handler handler;protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    button = (Button)findViewById(R.id.button1);    textView = (TextView)findViewById(R.id.textView);    handler = new MyHandler();    button.setOnClickListener(new View.OnClickListener() {        public void onClick(View v) {            new Thread(new MyThread()).start();        }    });
在点击事件中我们让线程运行了,线程的实现代码:

class MyThread implements Runnable{    int count = 0;    public void run() {        while(count <= 20){            try {                Thread.sleep(500);            }catch (Exception e){                e.printStackTrace();            }            //从消息池中获得消息,如果没有消息,创建一个消息,如果有,则取出来,由handler发送            Message message = Message.obtain();            message.arg1 = count;            message.obj = "jack";            handler.sendMessage(message);            count++;        }    }
在run()方法中发送消息,利用handler发送,

Handler类如下:

class MyHandler extends Handler{    @Override    public void handleMessage(Message msg) {        super.handleMessage(msg);        int arg1 = msg.arg1;        String name = (String)msg.obj;        textView.append(name+arg1);    }}
将接收到的内容添加到textView中。

运行的结果如下:


点击更新之后每隔0.5秒添加一个数据

阅读全文
1 0
原创粉丝点击