我已将一些键和值数据从一个活动传递到另一个活动片段,因此我没有获得键和片段中最后一个值的值。 我使用bundle传递数据。
答案 0 :(得分:2)
在您的活动中创建包以设置片段
Yourfragment fragment = new Yourfragment();
Bundle args = new Bundle();
args.putString(ARG_DATA, data);
fragment.setArguments(args);
然后加载片段getSupportFragmentManager().beginTransaction().replace(R.id.your_container,fragment).commit();
然后在你的片段oncreate中获取这样的数据
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mData = getArguments().getString(ARG_DATA);
}
}
答案 1 :(得分:1)
您可以使用以下内容将Activity和Fragments and Fragment之间的数据传递给片段:
https://developer.android.com/training/basics/fragments/communicating.html
但是要在活动之间传递它,你可以使用包数据(非常少的变量)或使用Application Class将它存储在内存中,确保你不会膨胀你的记忆。
新的Android架构组件也提供了很好的选择,这一切都取决于您的使用:
https://developer.android.com/topic/libraries/architecture/index.html
答案 2 :(得分:1)
从活动到活动,您可以使用Intent传递数据,当您在创建片段时创建片段的第二个活动中获取数据时,通过在片段中使用构造函数或使用bundle将数据传递给片段。如需进一步的帮助,如果您不知道该怎么做,请告诉我。
答案 3 :(得分:0)
将数据从活动传递到活动:
Intent intent = new Intent(this, Second.class);
intent.putExtra("data", sessionId);
startActivity(intent);
获取第二项活动中的数据:
String s = getIntent().getStringExtra("data");
将数据从活动传递到片段:
Bundle bundle = new Bundle();
bundle.putString("data", "From Activity");
// set Fragmentclass Arguments
FragmentOne fragment = new FragmentOne ();
fragment.setArguments(bundle);
从活动中获取数据到片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("data");
return inflater.inflate(R.layout.fragment, container, false);
}
快乐的编码!!