gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:50:29 25 4
gpt4 key购买 nike

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

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

最佳答案

算法:

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

来自引用站点:http://developer.android.com/guide/topics/data/data-storage.html#pref

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

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

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

  • getSharedPreferences() - 如果您需要用第一个参数指定的名称标识的多个首选项文件,请使用此方法。
  • getPreferences() - 如果您的 Activity 只需要一个首选项文件,请使用它。因为这将是您的 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();
}
}

关于android - 如何在共享首选项中存储字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com