我试图显示来自sharedpref的字符串类型和成功,但是如果我尝试显示来自sharedpref的数据整数类型,则无法显示。我在下面显示我的代码。
这是LoginAct.java中的一些代码
try {
JSONObject jsonObject = new JSONObject(response.body().string());
if (jsonObject.getString("status").equals("true")) {
Toast.makeText(context, "Login Success", Toast.LENGTH_SHORT).show();
Integer no_id = jsonObject.getJSONObject("data").getInt("no_id");
prefManager.saveSPInt(SharedPrefManager.SP_NO_ID, no_id);
prefManager.saveSPBoolean(SharedPrefManager.SP_LOGGED, true);
startActivity(new Intent(context, MainAct.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
finish();}
}
这是我的SharedPref.java
public class SharedPrefManager {
public static final String SP_APPS_APP = "spAppsApp";
public static final String SP_NO_ID = "spNoID";
public static final String SP_LOGGED = "spLogged";
SharedPreferences sp;
SharedPreferences.Editor spEditor;
public SharedPrefManager(Context context){
sp = context.getSharedPreferences(SP_APPS_APP, Context.MODE_PRIVATE);
spEditor = sp.edit();
}
public void saveSPInt(String keySP, Integer value){
spEditor.putInt(keySP, value);
spEditor.commit();
}
public Integer getSpNoId() {
return sp.getInt(SP_NO_ID, -1);
}
}
这是MainAct.java中显示NO_ID的一些代码
SharedPrefManager prefManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
prefManager = new SharedPrefManager(this);
tNoID = findViewById(R.id.txtNoID);
tNoID.setText(prefManager.getSpNoID());
}
我仍在努力,仍感到困惑以进行修复,希望您能为我提供帮助。谢谢大家的帮助。