在 Android 中使用共享首选项

2023-12-09

我有三个活动,A、B 和 C。其中 A 是启动活动,B 包含登录屏幕,其中包含用户 ID 和密码文本字段以及一个登录按钮。当我点击登录时,它会将我带到欢迎屏幕,并在屏幕 C 上显示用户名。

在这里,我想实现共享首选项,以便我可以存储用户的用户名和密码,这样用户就不必再次插入用户名和密码,并且在启动屏幕后用户可以直接进入欢迎屏幕。

我阅读了一些有关共享首选项的文档,我发现共享首选项有两种类型,一种是活动级别,另一种是应用程序级别。

我怎样才能实现这个?


这相对容易。您可以将用户名和密码直接存储在 SharedPreference 中,如下所示:

SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);

p.edit().putString("username", username).commit();
p.edit().putString("password", password).commit(); //SECURITY HAZARD: read below...

然后你可以像这样检索它:

String username = p.getString("username", "");
String password = p.getString("password", "");

这样做的问题是密码在全局范围内可用。您需要有一种方法来防止其他人查看它。执行此操作的方法是在保存密码时对其进行加密,并在使用对称密钥加载密码时对其进行解密。这是一个关于加密的教程:http://android.voxisland.com/code_examples/How_to_encrypt_and_decrypt_strings.rhtml

让我知道这是否对您有帮助。

Emmanuel

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中使用共享首选项 的相关文章

随机推荐

  • Android - setSoTimeout 不起作用

    所以我遇到了不工作的套接字超时 我遵循了现有帖子给出的所有说明 但它仍然不起作用 我从未遇到套接字超时异常 这是我的代码 AsyncTask
  • LINQ to Entities Any() 和 Contains() 列表较小,速度较慢

    我正在使用 EF 6 从数据库获取产品 产品类别映射为产品的导航属性 数据来自 ProductCategory 数据透视表 类别就像树一样工作 即每个类别都可以有子类别 但只有最具体的产品 子类别关系存储在数据透视表中 例如 假设有这样的类
  • 安装我的 Android 应用程序时出现问题

    我不知道我的应用程序发生了什么 以前从未发生过这种情况 我看到这样的错误 2011 04 10 11 53 22 Rocket Project 安装错误 INSTALL PARSE FAILED MANIFEST MALFORMED 201
  • 如何发送 Java RESTful Web 服务的 HTTP 错误?

    我已经这样做了tutorial现在我想从此 Web 服务抛出一个错误 例如 HTTP 错误代码403 or 400 我怎样才能做到这一点 我注意到我有一个类型的接口HttpServletResponse 但我不知道如何使用它 我还需要导入其
  • 如何从 Angular 的打字稿文件中获取背景颜色并将其绑定到我的 html 页面?

    我有一个在打字稿中填充的数组 并且根据数组中的值 我想为我的 div 设置不同的背景颜色 但它不起作用 我究竟做错了什么 我尝试使用 style backgroundColor statusColor i 设置背景 statusColor
  • 使用 Facebook API 创建和管理群组

    我是 Facebook 应用程序开发新手 正在寻找一种使用 Facebook API 创建和管理群组的方法 有一个获取和获取列表调用 但我还没有找到管理组的方法 貌似API已经发布了 https developers facebook co
  • Kotlin - 如何检查 if 条件中的双精度

    我有 if 语句 我想检查我的变量是否是双精度的 这是我的代码 val doubleVal findViewId
  • C++ 扩展 Ascii 字符

    如何检测 C 字符数组中是否存在扩展 ASCII 值 128 到 255 请记住 不存在扩展 ASCII 之类的东西 ASCII 过去和现在都只定义在 0 到 127 之间 上面的所有内容要么无效 要么需要采用 ASCII 以外的已定义编码
  • URL 作为 URL 的获取参数 - “&”的问题

    有一个脚本接收另一个 url 作为 GET 参数 script php file http www google com id 123 问题是 当 url 本身有参数时 它被用作脚本的参数 而不是 url 的参数 script php fi
  • util/ordering 模块和有序子签名

    考虑以下合金模型 open util ordering C abstract sig A sig B extends A sig C extends A pred show run show for 7 我明白为什么 当我run show
  • Jquery ajax 帖子不适用于 iPhone 和 Android

    我正在构建一个针对移动设备 特别是 iPhone 和 Android 的 Web 应用程序 我正在使用 ASP NET MVC 和 JQuery 构建它 在一页上我有一个级联下拉菜单 我已经在第一个下拉列表的更改事件上连接了一个函数 该函数
  • 如何根据数据创建不同类型的SVG元素?

    我正在尝试创建一个多样化的图例 其中有圆形 三角形 矩形 直线等 我想独立创建这些图例 然后使用 d3 来安排它们的位置和颜色 但是我如何直接访问这些数据 d3 selectAll g legend data is there a way
  • 如何在没有框架的情况下检查 DOM 是否准备好?

    这个问题就像这里和网络上的无数其他问题一样 如何检查 DOM 是否已在 Javascript 中加载 但这里有一个问题 不使用 jQuery 等框架 不知道您的脚本是否已通过静态放置加载
  • 如何通过彩信传输://

    有一些关于此的帖子 但到目前为止 我还没有看到任何好的答案 有没有办法可以使用 Android 从 mms uris 流式传输音频 MediaPlayer 似乎不喜欢这些流 另外 用 http 或 rtsp 更改 mms 也不起作用 有人找
  • 我可以在我的应用程序中获取来电电话号码的详细信息吗?

    我可以在 iPhone 应用程序中获取来电电话号码的详细信息吗 不 你不能 并且出于充分的理由 Apple 不允许应用程序监听用户拨打的电话
  • 寻找与 StructureMap 的 ObjectFactory.GetInstance() 方法等效的 Ninject

    我在 MVC 项目中使用 Ninject 并且使用了 Ninject Mvc 中的自动注册功能 并在我的应用程序类中设置了绑定 但是 我想在一个地方创建一个与这些绑定分开的实例 在 StructureMap 中 你可以这样做var foo
  • iPhone 推送通知无法连接到 SSL 服务器

    我按照以下说明进行操作 如何构建 Apple 推送通知提供程序服务器当我在 MacOSX 或使用并行桌面的 Windows 上运行 php 脚本时 该脚本可以正常工作 但一旦我在我的主机上运行它 我就会收到消息 Warning stream
  • 有什么方法可以创建一个可能具有不同调用和返回参数对象的方法吗?

    我正在使用这种类型的代码 lock l try var data db2 Query
  • Visual Studio - “附加到进程的特定实例”宏

    我想几乎每个进行大量调试的人在 Visual Studio 中都有一个方便的宏 工具栏上有它的快捷方式 当调用该宏时 它会自动附加到特定进程 通过名称标识 它比单击 调试 gt 附加到进程 节省了大量时间 但它仅在运行要附加的进程的单个实例
  • 在 Android 中使用共享首选项

    我有三个活动 A B 和 C 其中 A 是启动活动 B 包含登录屏幕 其中包含用户 ID 和密码文本字段以及一个登录按钮 当我点击登录时 它会将我带到欢迎屏幕 并在屏幕 C 上显示用户名 在这里 我想实现共享首选项 以便我可以存储用户的用户