2 つの異なるキーに 2 つのブール値を保存しようとしていますが、キーに値を保存するたびに、最後の値のみでキーを上書きします。
以下は、値を保存するための関数呼び出しです
AssignRegistrationFun manage =
new AssignRegistrationFun(getApplicationContext());
manage.ChangeDataState(false,true);
以下は、データの状態をチェックするif条件の関数呼び出しです...この関数呼び出しでは、最初の値をfalseに設定してもtrueを返します
if(manage.checkDataChanged("External"))
以下は、クラスの詳細を含む関数定義です
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
public class AssignRegistrationFun {
SharedPreferences pref;
Editor editor;
Context _context;
int PRIVATE_MODE = 0;
private static final String PREF_NAME ="Tester";
private static final String EXTERNAL_DATA = "true";
private static final String INTERNAL_DATA = "true";
public AssignRegistrationFun(Context context){
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public void ChangeDataState(boolean EX_state,boolean IN_state){
editor.putBoolean(EXTERNAL_DATA,EX_state);
editor.putBoolean(INTERNAL_DATA,IN_state);
editor.commit();//even editor.apply() not works
}
public boolean checkDataChanged(String type){
if(type.equals("External"))
return pref.getBoolean(EXTERNAL_DATA,false);
else
return pref.getBoolean(INTERNAL_DATA,false);
}
}
事前に感謝してください...