1.今天学了HandlerMessage的一种常用用法,来记录记录;
做了一个简单的测试,就是设定了一个按钮、一个Text View ,通过点击按钮来改变Text View中的文字,其实很简单。
那么,首先第一步就是在Activity中UI布局,如下:
布局代码段:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:id="@+id/tv_zhu3"
android:text="Hello world!"
android:textSize="20sp"
android:textColor="#000000"
android:layout_weight="1"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:layout_height="wrap_content"/>
<Button
android:layout_width="wrap_content"
android:id="@+id/btn_ceshi"
android:text="测试按钮"
android:textSize="20sp"
android:textColor="#000000"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:layout_height="wrap_content"/>
</LinearLayout>
第二步,在MainActivity.java中申明 Button、Text view控件的id,然后实例化;设置按钮的点击事件,在点击事件中加入text方法;最后调用HandlerMessage
1>.首先申明id、实例化
public class HomeActivity2 extends AppCompatActivity {
private TextView mtv_zhu3;
private TextView mtv_zhu2;
private Button mbtn_ceshi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home2);
mbtn_ceshi = findViewById(R.id.btn_ceshi);
mtv_zhu2 = findViewById(R.id.tv_zhu2);
2>.写按钮的点击事件,且使用test方法。
mbtn_ceshi = findViewById(R.id.btn_ceshi);
mbtn_ceshi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mtv_zhu3 = findViewById(R.id.tv_zhu3);
test();
}
private void test() {
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.obj = "嵌入式技术与应用";
message.what = 167;
handler.sendMessage(message);
}
}).start();
}
3>.然后就是写Handler Message
Handler handler = new Handler(Looper.myLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
mtv_zhu2.setText(msg.obj.toString());
}
};
基本就是这么个流程了,最后附上MainActivity.java中的全部代码(新手!!!)
package com.example.myapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class HomeActivity2 extends AppCompatActivity {
private TextView mtv_zhu3;
private TextView mtv_zhu2;
private Button mbtn_ceshi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home2);
mbtn_ceshi = findViewById(R.id.btn_ceshi);
mtv_zhu2 = findViewById(R.id.tv_zhu2);
mbtn_ceshi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mtv_zhu3 = findViewById(R.id.tv_zhu3);
test();
}
Handler handler = new Handler(Looper.myLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
mtv_zhu2.setText(msg.obj.toString());
}
};
private void test() {
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.obj = "嵌入式技术与应用";
message.what = 167;
handler.sendMessage(message);
}
}).start();
}
});
}
}