java基于用户输入在Android中编辑SharedReference
我对Java/Android开发非常陌生,我试图让用户检查单选按钮中的“男孩”或“女孩”,并将其写入SharedPreferences
,以便我可以在其他活动中使用它。每当我尝试打开此活动时,我的应用程序就会崩溃
public class NewBabyProfile extends Activity {
String GENDER = "Baby1Gender";
// SharedPreferences initializations
SharedPreferences babyOneGender = getSharedPreferences(getString(R.string.baby_one_profile), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = babyOneGender.edit();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_baby_profile);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.new_baby_profile, menu);
return true;
}
public void onRadioButtonClicked(View genderSelection){
boolean checked = ((RadioButton) genderSelection).isChecked();
switch(genderSelection.getId()) {
case R.id.gender_boy:
if (checked)
editor.putString("gender","boy").commit();
break;
case R.id.gender_girl:
if (checked)
editor.putString("gender","girl").commit();
break;
}
}
}
# 1 楼答案
不能在一个类中直接初始化以下两个
SharedReferences初始化应该在onCreate()或onResume()之类的方法中进行 将其移动到onCreate(Bundle)中,你的应用程序将不会再次崩溃。另外,请查看日志,自己找出问题:)
最终代码:-
# 2 楼答案
移动BabyNegender&;要重新创建的编辑器:
# 3 楼答案
试试这个