如何在共享首选项中存储字符串

时间:2014-06-17 18:23:18

标签: android sharedpreferences

我希望用户能够为其文本视图中显示的字符串创建昵称。该应用程序将通过服务将字符串提供给活动,并将其显示在textview中。然后我希望用户能够昵称该字符串,这样每次再次显示字符串时,昵称将显示而不是原始字符串。

我的问题是,我可以使用共享首选项来执行此操作吗?用户能够分配昵称背后的逻辑是什么?如果你能指出任何文献或示例代码也会受到高度赞赏。感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

Algorhithm:

  • 在应用生命周期的某个时间点,使用" name"写一个首选项。和一个价值。
  • 在应用启动时检索该值并将其与某些内容进行比较。
  • 因此行动。

来自参考网站:http://developer.android.com/guide/topics/data/data-storage.html#pref

使用共享首选项
SharedPreferences类提供了一个通用框架,允许您保存和检索原始数据类型的持久键值对。您可以使用SharedPreferences保存任何原始数据:布尔值,浮点数,整数,长整数和字符串。这些数据将在用户会话中持续存在(即使您的应用程序被终止)。

用户首选项
共享偏好不是严格用于保存用户首选项,"例如用户选择的铃声。如果您对为应用程序创建用户首选项感兴趣,请参阅PreferenceActivity,它为您提供了一个Activity框架,供您创建用户首选项,该首选项将自动保留(使用共享首选项)。

要获取应用程序的SharedPreferences对象,请使用以下两种方法之一:

  • getSharedPreferences() - 如果您需要使用第一个参数指定的名称标识的多个首选项文件,请使用此选项。
  • getPreferences() - 如果您的Activity只需要一个首选项文件,请使用此选项。因为这将是您的活动的唯一首选项文件,所以您不能提供名称。

写入值:

  • 调用edit()以获取SharedPreferences.Editor。
  • 使用putBoolean()和putString()等方法添加值。
  • 使用commit()
  • 提交新值
  • 要读取值,请使用SharedPreferences方法,例如getBoolean()和getString()。

以下示例在计算器中保存了对静音按键模式的偏好:

public class Calc extends Activity
{
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
        super.onCreate(state);
        //...

        // Restore preferences
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        boolean silent = settings.getBoolean("silentMode", false);
        setSilent(silent);
    }

    @Override
    protected void onStop()
    {
        super.onStop();

        // We need an Editor object to make preference changes.
        // All objects are from android.context.Context
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();
        editor.putBoolean("silentMode", mSilentMode);

        // Commit the edits!
        editor.commit();
    }
}