android - 关闭登录菜单后如何在 SharedPreferences 中保存数据?
问题描述
我正在尝试将我的数据保存在从 JSON 获取数据的位置,并且我想将其保存以用于登录活动。在登录活动中,我希望它检查数据是否存在,因此不再需要登录。所以我SharedPreferences
用来保存数据,但我不知道它是否保存,因为如果应用程序终止,我无法跟踪它。但在我把一些数据放在它上面之前,它突然就开始了。
这是我从 JSON 获取数据并将其保存到sharedpreferences
.
String jsonData = response.body().string();
JSONObject object = new JSONObject(jsonData);
token = object.getString("access_token");
Log.d("isi token", "" + token);
if (response.code() == 200) {
runOnUiThread(new Runnable() {
@Override
public void run() {
new userData().execute();
SharedPreferences sharedPreferences = getSharedPreferences("userToken", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("token", token);
editor.commit();
Intent intent = new Intent(LoginActivity.this, JudulActivity.class);
startActivity(intent);
}
});
}
这是我的数据,我从中检索数据sharedpreferences
并希望在令牌为空时使逻辑登录,因此它不会有意。但在我调用 JSON 之前它是有意的。
Log.d("token", "" + token2);
SharedPreferences sharedPreferences = getSharedPreferences("userToken", Context.MODE_PRIVATE);
token2 = sharedPreferences.getString("token", "");
Log.d("token2", "" + token2);
if (token2 == null) {
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
nameS = username.getText().toString();
passS = password.getText().toString();
if (nameS.isEmpty()) username.setError("Username belum diisi");
else if (passS.isEmpty()) password.setError("Password belum diisi");
else {
new login().execute();
}
}
});
} else {
Intent intent = new Intent(LoginActivity.this, JudulActivity.class);
startActivity(intent);
}
令牌中的 Log.d 为空,但在 token2 中什么也没有发生,请帮助如何使其正确。
解决方案
token2 = sharedPreferences.getString("token", "");
它将获得默认值""
,因此它不为空,因为您必须尝试此操作
if(TextUtils.isEmpty(token2)){
// your code
}
推荐阅读
- javascript - 为什么当我对 src URL 进行硬编码时会显示我的 img,而当我以编程方式分配它时却没有?
- git - 不小心从我的电脑上删除了我的项目
- postgresql - PostgreSQL 使用 pg_trgm 比全扫描慢
- java - 调用构造函数并初始化数据库名称
- ios - 为什么我无法从 Apple iOS Contacts Framework 的默认容器中检索组?
- c# - C# 无法绑定 EmailMessage
- scheme - 如何在 DrRacket 中执行操作顺序
- image - 如何修复我当前的图表没有在我的用户表单中导出其文件名?每次我必须重命名图表才能工作
- javascript - 如何使 InnerHTML 淡出
- git - 我的 Github Action 的工作流程完成后,如何运行 GitHub Webhook?