Fragment与Activity之间的传值和接口回调
2016-11-07 16:27
417 查看
首先创建一个activity和一个fragment
把fragment与activity之间建立连接
在fragment里面写个接口
Activity中的操作
把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管理类 Fra 94c5 gmentManager manager=getSupportFragmentManager(); //得到事物 FragmentTransaction replace = manager.beginTransaction().replace(R.id.zhufragment, fr); //提交 replace.commit(); } }
相关文章推荐
- Android中Fragment和Activity之间的通信(含接口回调)
- Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
- 回调接口实现Activity与Fragment之间的通信
- Android中接口的回调,Activity或Fragment与普通类之间的互相调用
- Fragment和Activity之间的通信(含接口回调)
- Fragment 的静态方式和动态方式以及动态方式中fragment之间通过activity传递 数据(接口回调 ):
- 利用接口回调实现fragment与activity的通信
- view和fragment之间传输数据-接口回调方法
- acitvity与Fragment之间使用接口进行数据回调
- fragment与activity之间的回调,用于数据更新操作(是fragment向activity里传值)
- Activity与Fragment通过接口回调进行通信
- 利用接口回调实现fragment与activity的通信
- 两个Activity之间用接口回调进行通信
- fragment向activity传送数据,用回调接口实现
- android-如何通过接口回调来解决Fragment之间的交互
- android使用接口回调把fragment把值传回到Activity
- 自定义Adapter的接口,方便回调。Adapter与Activity之间的回调
- 利用接口回调实现Fragment之间的跳转--摘自吴比航老师博客160402
- Fragment(3)和其他Fragment之间交互--伟大的接口回调
- Fragment向activity传值的接口回调方法