SharedPreferenced无法显示数据整数

时间:2019-12-16 03:30:38

标签: java android json api sharedpreferences

我试图显示来自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());
}

我仍在努力,仍感到困惑以进行修复,希望您能为我提供帮助。谢谢大家的帮助。

0 个答案:

没有答案