0

次の方法を使用して、共有設定のインスタンスを実装しました。

出発地点:

SharedPreferences prefs=getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor=prefs.edit();
        editor.putBoolean("name",true);
        editor.putBoolean("cap",true);
        editor.putBoolean("code",true);
        editor.putBoolean("time",true);
        editor.putBoolean("ssid",true);
        editor.commit();

終点:

SharedPreferences prefs = getSharedPreferences(NDEF_PREF, Context.MODE_PRIVATE); 
            boolean name = prefs.getBoolean("name", true); 
            boolean cap= prefs.getBoolean("cap", true);
            boolean code = prefs.getBoolean("code", true);
            boolean time = prefs.getBoolean("time", true);
            boolean ssid = prefs.getBoolean("ssid", true);

試験方法:

Boolean isTrue;
                isTrue = null; // valid
                isTrue = true; // valid
                isTrue = false; // valid
                if (isTrue == null) {
                    Log.d(TAG, "Working Boolean!!!");

Boolean isTrue;
            isTrue = null; // valid
            isTrue = true; // valid
            isTrue = false; // valid
            if (isTrue != null) {
                Log.d(TAG, "NON Working Boolean!!!");

結果:

どちらの方法を使用しても LogCat に何も表示されない

質問:

すべてを正しく実装しましたか? もしそうなら、新しい共有設定を無効にできないのはなぜですか?

4

1 に答える 1

0

以下のコードを試してみて、logcat「val if null」に何が表示されるかを推測します

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

SharedPreferences pref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("name", true);

SharedPreferences prefs = getSharedPreferences("prefs",0);
// Boolean val=prefs.getBoolean("name1", true);
Boolean  val=null;
//Log.e("vaaa00", ""+val.toString());
if(val!= null)
   Log.e("val if ", ""+val);
else
   Log.e("val else", ""+val);        
}
于 2013-04-18T13:50:40.680 に答える