私のアプリケーションでは、チェックボックスがオンになっているかどうかによって、キー値を0または1として保存しようとしています。私はこれらの値を別のアクティビティで取得します。 (MyHomeを)活動2にキーの値を取得Key-Value Storeデータが取得されない
public void setDefaults(String key, String value) {
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(key, value);
editor.commit();
}
public void onCheckboxClicked(View view) {
// Is the view now checked?
boolean checked = ((CheckBox) view).isChecked();
// Check which checkbox was clicked
switch(view.getId()) {
case R.id.checkBox_APBio:
if (checked) {
setDefaults("APBio", "1");
}
else {
setDefaults("APBio", "0");
break;
}
}}
:
活動1でキー値を保存する(ScienceCoursesCheck):私は値を取得しようとしたときしかし、私は空の文字列を取得しています
public static String getDefaults(String key, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, null);
}
public void myMethod() {
SharedPreferences myPrefs = getSharedPreferences("ScienceCoursesCheck", MODE_PRIVATE);
String APBio = myPrefs.getString("APBio","");
if (APBio.equals("1")){
Button myButton = new Button(this);
myButton.setText(APBio);
RelativeLayout ll = (RelativeLayout)findViewById(R.id.activity_my_home);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
ll.addView(myButton, lp);
}
}
2番目のアクティビティが正しいSharedPreferencesファイルにアクセスしていますか?あなたはSharedPreferences
内の項目を保存するときに
PreferenceManager.getDefaultSharedPreferences
を使用しているが、あなたがそれらを取得するときに、これらは、二つの異なるSharedPreferences
ファイルです
getSharedPreferences("ScienceCoursesCheck", MODE_PRIVATE);
使用しているため