Andriod Handler更新UI
首先看源代码:
public class MainActivity extends Activity {
private Button but;
private TextView show;
public EditText edit;
public static String Msg="";
private Handler hand;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show=(TextView)findViewById(R.id.show);
edit=(EditText)findViewById(R.id.edit);
but=(Button)findViewById(R.id.but);
but.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0)
{
/*创建线程,用于发送(send)信息*/
new Thread(new Runnable(){
@Override
public void run() {
Message m=hand.obtainMessage();
/*重载的handleMessage将对这个Message对象进行处理*/
hand.sendMessage(m);
//Toast.makeText(MainActivity.this, "执行sendMessage", 2000).show();
}}).start();
}
});
/*对Ui进行更新*/
hand=new Handler(){
@Override
public void handleMessage(Message msg)
{
show.setText(Msg);
edit.setText("");
super.handleMessage(msg);
}
};
}
结构十分清晰:1,开启线程—>线程中创建Message对象msg—>Handler调用sendMessage(msg)
2,实例化Handler对象,重写handleMessage(Message msg)方法,这个方法与sendMessage(msg)对应,UI的更新在这个函数里实现