我想从活动到片段接收数据。 在活动中很简单:
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();
错误:“无法访问的代码”
有什么想法吗?
答案 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);
}