簡體   English   中英

如何檢查 SharedPreferences 字符串是否為空或 null *android

[英]how to check the SharedPreferences string is empty or null *android

我想檢查 SharedPreferences 中的一個字符串,用它來存儲用戶名和密碼,所以如果用戶名和密碼不是 null 或為空,它將被定向到主頁,否則如果用戶名和密碼為空,它將被定向到登錄頁面。

這是我檢查 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);
}

我嘗試使用此代碼通過 toast 檢查它,在嘗試此操作后,我得到 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();
        }
    }
 });

如何正確檢查 SharedPreferences 字符串是空的還是 null?

謝謝..

做這個:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String username = myPrefs.getString("USERNAME",null);
String password = myPrefs.getString("PASSWORD",null);

如果存在用戶名和密碼,則它們將具有值,否則它們將為空。

if (username != null && password != null )
{
    //username and password are present, do your stuff
}

您不必單獨檢查他們的存在。 嘗試檢索其值將自動返回null(如果不存在)或值(如果存在)。

public static final String DEFAULT_VALUE = "default";
public static final String ANY_FIELD = "any_field";

SharedPreferences prefs = context.getPreferences(Activity.MODE_PRIVATE);
String text = prefs.getString(ANY_FIELD, DEFAULT_VALUE);
if (text.equals(DEFAULT_VALUE)) {
    //TODO:
} else {
    //TODO:
}

祝好運!

試試這個

  if(PreferenceConnector.getString("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);
   }

在我的情況下,我需要檢查默認值,所以我確實喜歡這個

var userNo = controller.prefs!.getInt('userNo') ?? 0;

if (userNo > 0) {
  //do some task
}

它對我來說很好用

 if(appSettings.contains(Constants.WEATHER_SUBN_POSTION)) {
        savedSubPostion = appSettings.getInt(Constants.WEATHER_SUBN_POSTION, 0);
 }

首先檢查它是否包含值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM