首先创建一个activity和一个fragment
把fragment与activity之间建立连接
在fragment里面写个接口
public class MyFragment extends Fragment {
private View view;
private Button fr_btn1;
private Button fr_btn2;
private Button fr_btn3;
private Button fr_btn4;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view =inflater.inflate(R.layout.myfragment,null);
//获取控件
initview();
return view;
}
//定义回调接口
public interface CallBack
{
public void backlister(String s);
}
//定义供Activity调用的函数
//可以之间用构造方法
CallBack callBack;
public MyFragment(CallBack callBack) {
this.callBack = callBack;
}
private void initview() {
fr_btn1 =(Button)view.findViewById(R.id.fr_btn1);
fr_btn2 =(Button)view.findViewById(R.id.fr_btn2);
fr_btn3 =(Button)view.findViewById(R.id.fr_btn3);
fr_btn4 =(Button)view.findViewById(R.id.fr_btn4);
fr_btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//把Button的值赋给接口中的方法 callBack.backlister(fr_btn1.getText().toString());
}
});
fr_btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
callBack.backlister(fr_btn2.getText().toString());
}
});
fr_btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
callBack.backlister(fr_btn3.getText().toString());
}
});
fr_btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
callBack.backlister(fr_btn4.getText().toString());
}
});
}
}
Activity中的操作
public class MainActivity extends AppCompatActivity {
private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
btn1 =(Button)findViewById(R.id.btn1);
btn2 =(Button)findViewById(R.id.btn2);
btn3 =(Button)findViewById(R.id.btn3);
btn4 =(Button)findViewById(R.id.btn4);
//获取fragment对象 实现其中的接口方法
MyFragment myfragment = new MyFragment(new MyFragment.CallBack() {
@Override
public void backlister(String s) {
if (s.equals("1")){
//取出方法中的值
btn1.setText(s);
}else if (s.equals("2")){
btn2.setText(s);
}else if (s.equals("3")){
btn3.setText(s);
}else if (s.equals("4")){
btn4.setText(s);
}
}
});
Chagefragment(myfragment);
}
//切换Fragment
public void Chagefragment(Fragment fr){
//得到fragment管理类
FragmentManager manager=getSupportFragmentManager();
//得到事物
FragmentTransaction replace = manager.beginTransaction().replace(R.id.zhufragment, fr);
//提交
replace.commit();
}
}