fragment与activity通讯

来源:互联网 发布:三菱plc编程入门教程 编辑:程序博客网 时间:2024/05/17 09:10

一、activity向fragment传递数据

(方式一)

fragment中:

private String mArgument;public static final String ARGUMENT = "argument";@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    Bundle bundle = getArguments();    if (bundle != null) {        mArgument = bundle.getString(ARGUMENT);        Log.e("传来的数据", mArgument );    }}/** * 传入需要的参数,设置给arguments * * @param argument * @return */public static TestFragmentA newInstance(String argument) {    Bundle bundle = new Bundle();    bundle.putString(ARGUMENT, argument);    TestFragmentA contentFragment = new TestFragmentA();    contentFragment.setArguments(bundle);    return contentFragment;}
activity中:

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    fragment = TestFragment.newInstance("123");    FragmentManager fm = getFragmentManager();    FragmentTransaction ft = fm.beginTransaction();    ft.add(R.id.content, fragment, "A");    ft.commit();}

(方式二)(为什么这么简单,不知道会不会有什么问题,求大神指点)

fragment中:

public String getData() {    return "hello";}
activity中:

fragmentA = new TestFragmentA();Log.e("方法返回的数据", fragmentA.getData() );

二、fragment向activity中传递数据

fragment中:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    Log.e("TestFragment", "onCreateView");    View view = inflater.inflate(R.layout.layout_fragmenta, container, false);    //在需要传递数据的地方调用    if (getActivity() instanceof AbtnClikListener) {        ((AbtnClikListener) getActivity()).showByName("hello");    }    return view;}public interface AbtnClikListener {    void showByName(String name);}
activity中:(需要实现AbtnClikListener接口)

@Overridepublic void showByName(String name) {    Log.e("获取到的数据", name);}

(方式二)

fragment中

MainActivity mainActivity = (MainActivity) getActivity();Log.e("方法中的数据", mainActivity.getData() );
activity中:

public String getData() {    return "hello";}

原创粉丝点击