如何将数据从一个活动传递到android中的其他活动片段?

时间:2017-11-10 05:14:30

标签: android

我已将一些键和值数据从一个活动传递到另一个活动片段,因此我没有获得键和片段中最后一个值的值。  我使用bundle传递数据。

4 个答案:

答案 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);

}

快乐的编码!!