如何检查SharedPreferences字符串是空的还是null*android

Chr*_*owo 9 android

我想检查SharedPreferences中的字符串,用它来存储用户名和密码,所以如果用户名和密码不为空或空,它将被定向到home,否则如果用户名和密码为空,它将被定向到登录页面.

这是我检查SharedPreferences字符串的代码,但它不起作用..

if(PreferenceConnector.USERNAME!=null){
    Intent intent = new Intent(MainActivity.this,MainHome_Activity.class);
    startActivity(intent);
} else {
   Intent intent = new Intent(MainActivity.this,LoginFormPegawai_Activity.class);
   startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过这个代码的吐司检查它,并在我尝试这个之后,我得到SharedPreferences字符串不为null或空..

btn_logout_pegawai.setOnClickListener(new OnClickListener() {
     public void onClick(View v) {

      //remove the SharedPreferences string
      PreferenceConnector.getEditor(this).remove(PreferenceConnector.USERNAME)
            .commit();
      PreferenceConnector.getEditor(this).remove(PreferenceConnector.PASSWORD)
            .commit();  

//checking the SharedPreferences  string
         if(PreferenceConnector.USERNAME!=null){
            Toast.makeText(MainHome_Activity.this,"not null", Toast.LENGTH_SHORT).show();       
         }
         else {
           Toast.makeText(MainHome_Activity.this,"null", Toast.LENGTH_SHORT).show();
        }
    }
 });
Run Code Online (Sandbox Code Playgroud)

如何正确检查SharedPreferences字符串是空还是空?

谢谢..

Anu*_*kur 29

做这个:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String username = myPrefs.getString("USERNAME",null);
String password = myPrefs.getString("PASSWORD",null);
Run Code Online (Sandbox Code Playgroud)

如果存在用户名和密码,则它们将具有值,否则它们将为空.

if (username != null && password != null )
{
    //username and password are present, do your stuff
}
Run Code Online (Sandbox Code Playgroud)

您不必单独检查他们的存在.尝试检索其值将自动返回null(如果不存在)或值(如果存在).

  • **MODE_WORLD_READABLE**现已弃用.使用SharedPreferences时,请使用**MODE_PRIVATE**. (4认同)