Fragment与FragmentActivity间的数据通讯详细解决方案
16lz
2021-01-23
1.首先定义一个接口:
public interface IFragmentDataListener {public void transferMessage(); }
2.然后Fragment和FragmentActivity分别取实现IFragmentDataListener接口:
public class CompanyContactsFragment extends BaseFragment implements IFragmentDataListener
public class CompanyActivity extends BaseFragmentActivity implements IFragmentDataListener
3.如果FragmentActivity中调用Fragment的方法:
在FragmentActivity中:
private IFragmentDataListener mFragmentDataListener; @Overridepublic void onAttachFragment(Fragment fragment) {// TODO Auto-generated method stubtry {mFragmentDataListener = (IFragmentDataListener) fragment;} catch (Exception e) {// TODO: handle exception}super.onAttachFragment(fragment);}@Overridepublic void transferMessage() {//在这里这个不用管// TODO Auto-generated method stubSystem.out.println("由Fragment传输过来的信息"); } mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法
在 Fragment中:
@Overridepublic void transferMessage() {// TODO Auto-generated method stubSystem.out.println("由Activity传输过来的信息"); loadData(2);}
4.在Fragment中调用FragmentActivity中的方法:
在FragmentActivity中:
@Overridepublic void transferMessage() {// TODO Auto-generated method stubSystem.out.println("由Fragment传输过来的信息"); setTitleButtonSelect(1);}
在Fragment中:
private IFragmentDataListener mFragmentDataListener; @Overridepublic void onAttach(Activity activity) {// TODO Auto-generated method stubtry {mFragmentDataListener = (IFragmentDataListener) activity;} catch (Exception e) {// TODO: handle exceptionthrow new ClassCastException(activity.toString()+ "must implement mbtnListener");} super.onAttach(activity);} @Override public void transferMessage() {//在这里这个不用管 // TODO Auto-generated method stub System.out.println("由Activity传输过来的信息"); } mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法
更多相关文章
- Android简单实现启动画面的方法
- android 获取锁屏,解锁的方法
- android 获取设备Id等信息
- android中的activity里获得context方法
- android paint设置字体 中文字体 楷体 和自动换行方法(zhuan)
- Android发送短信,并监听短信发送后是否发送成功的实现方法
- 找不到R.java 解决方法
- android获取进程信息,运行内存信息