代码应该做什么:在第一个片段中我有几个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);
答案 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