如何在片段中接收数据

时间:2014-03-25 11:50:06

标签: android android-fragments

我想从活动到片段接收数据。 在活动中很简单:

Bundle b = getIntent().getExtras();
String flag = b.getString("flag");

好的,对我来说,不起作用

String flag = getIntent().getExtras().getString("flag");

无论

String flag = getActivity().getIntent().getExtras().getString("flag");

或者

Bundle b = getIntent().getExtras();

错误:“无法访问的代码”

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以在Fragment documentation上查看该内容。

在您的片段中创建newInstance功能,以初始化片段并使用setArguments添加数据,并传递Bundle

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;
}

然后使用:

获取参数
 Bundle args = getArguments();
 int index = args.getInt("index", 0);

答案 1 :(得分:0)

从活动中您按意图发送数据:

Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);

并在Fragment onCreateView方法中:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("edttext");    
    return inflater.inflate(R.layout.fragment, container, false);
}