<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秒添加一个数据