繁体   English   中英

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

[英]How to store strings in Shared Preferences

我希望用户能够为其在textview中显示的字符串创建一个昵称。 该应用程序将通过服务将字符串提供给活动,并在textview中显示它。 然后,我希望用户能够对该字符串进行昵称,以便每次再次显示该字符串时,都会显示昵称而不是原始字符串。

我的问题是,我可以使用共享首选项来做到这一点吗? 用户能够分配昵称的背后的逻辑是什么? 如果您能指出任何文献或示例代码,也将不胜感激。 感谢您的任何帮助。

Algorhithm:

  • 在应用程序生命周期中的某个时刻,使用“名称”和值编写首选项。
  • 应用启动时检索值,并将其与某些值进行比较。
  • 因此采取行动。

从参考站点: 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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM