【问题标题】:Send data between fragments using Shared Preferences使用共享首选项在片段之间发送数据
【发布时间】:2013-08-26 15:41:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: android actionbarsherlock fragment sharedpreferences


    【解决方案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】:

    请在 Bundle 中传递您的数据(特别是复杂的数据),如下所述:Best practice for instantiating a new Android Fragment

    不要使用共享偏好来做到这一点。

    【讨论】:

      【解决方案3】:

      在 Activity 和 Fragment 之间传递数据的方式有很多种。在此处查看此回复:data sharing between fragments and activity in android

      【讨论】:

        猜你喜欢
        • 2021-02-20
        • 1970-01-01
        • 1970-01-01
        • 2015-09-30
        • 1970-01-01
        • 1970-01-01
        • 2017-05-22
        • 1970-01-01
        相关资源
        最近更新 更多