我是用一个fragment实现的,有差异的地方自行更改:
public class SecondFragment extends Fragment {
public static final int UPDATE_INT = 1;
TextView textView;
Button second_btn;
View view;
//使用handler进行消息处理和传递
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case UPDATE_INT:
Log.v("Message", msg.what + "");
break;
case 0:
Log.v("Message", "00000000000000000");
break;
default:
Log.v("Message","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
super.handleMessage(msg);
}
};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//避免同一activity下 多个fragment 切换时重复执行onCreateView方法
// Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。
if (view == null) {
view = inflater.inflate(R.layout.second_fragment, container, false);
} else {
ViewGroup parent = (ViewGroup) view.getParent();
if (null != parent) {
parent.removeView(view);
}
}
textView = view.findViewById(R.id.second_title);
second_btn = view.findViewById(R.id.second_btn);
String text = textView.getText().toString();
second_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//多线程的应用
new Thread(new Runnable() {
@Override
public void run() {
Message msg = new Message();
msg.what = UPDATE_INT;
handler.sendMessage(msg);
//sendEmptyMessage封装了一个msg.what,可以直接通过输入参数设置what,其他信息为空
handler.sendEmptyMessage(0);
}
}).start();
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}