Android中经常实用多线程,而我们自己建立的线程却不能对Activity的界面进行修改。
这时就需要handler了。
话不多说,直接上代码,
public class FourButton extends AppCompatActivity {
Button btn;
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
btn.setText("456");
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_four_button);
btn= (Button) findViewById(R.id.Button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(){
@Override
public void run() {
super.run();
Message msg=new Message();
msg.what=0x123;
handler.sendMessage(msg);
}
}.start();
}
});
}
}
layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="liujingwei.cn.wechat.FourButton"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="33dp"
android:text="123"
android:id="@+id/Button"
android:layout_gravity="center_horizontal" />
</LinearLayout>
在单击123按钮之后,123就会变成456,完成