我在我的项目中使用共享首选项来存储用户信息,但是我遇到了程序遇到错误并且根本无法加载的问题,而就代码而言,我的代码没有问题。但是应用程序没有出现,并且错误文本也没有发送,以便我可以将其告诉您,应用程序只是关闭并且无法继续。 我该如何解决它?
这是我存储信息的类的代码:
public class UserManager {
private SharedPreferences sharedPreferences;
public UserManager(Context context) {
sharedPreferences = context.getSharedPreferences("user_information", Context.MODE_PRIVATE);
}
public void saveUserInformation(String fullName, String email, String gender) {
@SuppressLint("CommitPrefEdits") SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("full_name", fullName);
editor.putString("email", email);
editor.putString("gender", gender);
editor.apply();
}
public String getFullName() {
return sharedPreferences.getString("full_name", "");
}
public String getEmail() {
return sharedPreferences.getString("email", "");
}
public String getGender() {
return sharedPreferences.getString("gender", "");
}
}
这是我保存后收到信息的主类的代码:
public class MainActivity extends AppCompatActivity {
private UserManager userManager;
private String gender = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userManager = new UserManager(this);
TextInputEditText fullNameEt = findViewById(R.id.et_main_fullName);
fullNameEt.setText(userManager.getFullName());
TextInputEditText emailEt = findViewById(R.id.et_main_email);
emailEt.setText(userManager.getEmail());
RadioGroup genderRadioGroup = findViewById(R.id.radioGroup_main_gender);
genderRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.btn_main_male) {
gender = "male";
} else {
gender = "female";
}
}
});
gender = userManager.getGender();
if (gender.equalsIgnoreCase("male")) {
genderRadioGroup.check(R.id.btn_main_male);
} else if (gender.equalsIgnoreCase("female")) {
genderRadioGroup.check(R.id.btn_main_female);
}
View saveBtn = findViewById(R.id.btn_main_save);
saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
userManager.saveUserInformation(fullNameEt.getText().toString(),
emailEt.getText().toString(),
gender);
}
});
}
}