Android - 从Activity传递到它承载的片段

时间:2013-08-26 10:23:21

标签: android android-fragments

目前我一直潜入片段世界:http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity

我理解通过在片段中创建一个监听器然后在托管片段的Activity中实现它是从片段到Activity进行通信的好方法,但是如何从活动到片段进行通信?另一个听众?也许我并不完全理解听众在做什么。任何帮助解释如何从活动到片段进行交流的主题都将非常感激!

P.S。我目前正在将我制作的活动(B)转换为片段。我在开始活动B之前用来做一些来自活动A的intent.putExtra(“value”)所以这就是我要替换的东西...可能根本没有帮助你,但我想我会试着把它放进去透视我正在做什么。

2 个答案:

答案 0 :(得分:1)

我可能已经找到了解决方案,哈哈。我会做一些检查以确保其有效并稍后再确认。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

        Bundle b = getActivity().getIntent().getExtras();
        wid = b.getString("wid");
        rid = b.getString("rid");
        View view = inflater.inflate(R.layout.categoryfragment, container, false);
return view;
}

答案 1 :(得分:1)

就像您在创建活动时一样,您可以将Bundle传递给Fragment

有一个关于如何在Fragment class reference上执行此操作的示例。

/**
 * Create a new instance of DetailsFragment, initialized to
 * show the text at 'index'.
 */
public static DetailsFragment newInstance(int index) {
    DetailsFragment f = new DetailsFragment();

    // Supply index input as an argument.
    Bundle args = new Bundle();
    args.putInt("index", index);
    f.setArguments(args);

    return f;
}

使用getArguments()获取Bundle