使用共享首选项在片段间发送数据

时间:2013-08-26 15:41:37

标签: android actionbarsherlock fragment sharedpreferences

代码应该做什么:在第一个片段中我有几个EditText框,因此人们可以填写名称。在第二个片段中,我希望名称显示在TextView框中。我认为使用共享首选项是一件好事(如果我错了,请纠正我)。

在我的第一个片段中,我有这段代码:

public static String filename = "player1";
SharedPreferences someData;
[...]
someData = getActivity().getSharedPreferences(filename, 0);
String player1 = etPlayer1.getText().toString();
SharedPreferences.Editor editor = someData.edit();
editor.putString(player1, "player1");
editor.commit();

在我的第二个片段中:

public static String filename = "player1";
SharedPreferences someData;
[...]
points1 = (TextView) getView().findViewById(R.id.tvPoints1);
someData = getActivity().getPreferences(0);
String dataReturned = someData.getString("player1", "Player 1");
points1.setText(dataReturned);

3 个答案:

答案 0 :(得分:1)

请将您的数据(特别是如果复杂)传递到捆绑包中,如下所述:Best practice for instantiating a new Android Fragment

不要使用共享首选项来执行此操作。

答案 1 :(得分:1)

您可以使用Intent或Bundle。共享首选项用于存储长期数据。

请参阅此回答https://stackoverflow.com/a/10960855/826657

以及如何使用Bundle https://stackoverflow.com/a/16500141/826657

共享数据

&安培;这个资源

http://developer.android.com/guide/components/fragments.html

答案 2 :(得分:1)

有很多方法可以在activity和fragment之间传递数据。请在此处查看此回复:data sharing between fragments and activity in android