java - Sharedpreferences android studio 错误保存数据
问题描述
我使用 sharedpreference 从 numberDecimal 编辑文本中保存了我的数据。当我想在另一个活动中获取该数据时,它始终显示为 null,因此未正确保存。有什么建议吗?
这是我保存数据的代码:
public void Start(View view) {
EditText LevelEdit = (EditText) findViewById(R.id.editText_LevelCurrent);
String User_Level = LevelEdit.getText().toString();
if (User_Level == "") {
Toast.makeText(this, "Select a level",
Toast.LENGTH_LONG).show();
} else {
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(GameConstants.StringvalueOfLevel,User_Level);
editor.commit();
Intent myIntent = new Intent(Mygame_Menu.this, Mygame.class);
startActivity(myIntent);
}
}
解决方案
我认为你的条件是错误的,因为你在共享首选项中保存 null 对象不要像这样检查字符串 if (User_Level == "")
== 运算符不能在 java 中的字符串上工作!您应该使用 equals 方法与这样的 String 进行比较"Amir".equals("Amir")
改用这个if (User_Level==null||User_Level.isEmpty())
推荐阅读
- c++ - 用c ++编写二进制文件时如何设置精度?
- c# - 如何在 Xamarin 中创建图形?
- node.js - 发布请求后反应状态不更新?
- c# - 从 Activator.CreateInstance 创建对象后从接口访问方法
- sql - 如何在 SQL 中获取对象(具有所有键名)中的对象?
- flutter - 无法在同一个 HookWidget 中同时使用 useFuture() 和 useValueChanged()
- ruby - Array.each 的 Ruby 奇怪行为
- linux - 屏幕处理程序(例如.vi、less)如何工作?
- asp.net-core - 使用 Asp.net 核心和 Identityserver 4 从浏览器获取 401,但从邮递员获取 200
- p5.js - 如何在 Vue 3 中使用 p5.loadImage