当前位置: 移动技术网 > IT编程>移动开发>Android > Android 两个Fragment之间传递数据实例详解

Android 两个Fragment之间传递数据实例详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

英语六级高频词汇,爱欢网,名霸测名

 android 两个fragment之间如何传递数据

fragmenta启动fragmentb,做一些选择操作后,返回fragmenta,需要把fragmentb里面选择的数据传回来。有什么办法?

fragment之间不能直接通信,必须通过activity来完成,具体步骤。

1. 在fragmenta中定义通信接口,通过该接口向activity发送数据。

public class fragmenta extends fragment {
  private onbuttonpresslistener mlistener;

  @override
  public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {
    view view = inflater.inflate(r.layout.fragment_linmo_select_beitie, container, false);
    listview.setonitemclicklistener(new adapterview.onitemclicklistener() {
      @override
      public void onitemclick(adapterview<?> parent, view view, int position, long id) {
        mlistener.onokbuttonpressed(selectedbeitie);
      }
    });

    return view;
  }

  @override
  public void onattach(activity activity) {
    super.onattach(activity);
    try {
      mlistener = (onbuttonpresslistener) activity;
    } catch (classcastexception e) {
      throw new classcastexception(activity.tostring() + " must implement onokbuttonpressed");
    }
  }

  public interface onbuttonpresslistener {
    void onokbuttonpressed(linmobeitieitem item);
  }
}

2. 在activity中实现该接口,并通过该接口向fragmentb传递数据。

public class mainactivity extends activity implements fragmenta.onbuttonpresslistener {
  @override
  public void onokbuttonpressed(linmobeitieitem item) {
    fragmentb fragmentb = (fragmentb)getfragmentmanager().findfragmentbyid(r.id.container);
    fragmentb.onbeitieselected(item);
  }
}

3. fragmentb接收到数据并处理。

public class fragmenta extends fragment {
  public void onbeitieselected(linmobeitieitem item) {
    // ...
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网