У меня возникли проблемы с восстановлением SharedPreferences в активности, отдельной от оригинала.
У меня есть два класса, которые используют это, "NewCustomerActivity" и "OldCustomerActivity".Оба должны иметь доступ на чтение / запись к файлу - в настоящее время я просто тестирую, записывая из NewCustomerActivity, который соответствующим образом восстановит данные формы после уничтожения действия;однако я получаю FC при открытии OldCustomerActivity, которое пытается восстановить данные в том же смысле, что и NewCustomerActivity с NullPointerException.
NewCustomerActivity:
public class NewCustomerActivity extends Activity {
public static final String USER_INFO = "UserInfoFile"; // This file will the store the user's information for later use.
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newcustomer);
SharedPreferences userInfo = getSharedPreferences(USER_INFO, 0); // Restore our earlier saved info.
EditText et;
...... (Other code is irrelevant)
}
OldActivityNew - это то же самое:
public class OldCustomerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.oldcustomer);
SharedPreferences userInfo = getSharedPreferences(NewCustomerActivity.USER_INFO, 0); // Restore our earlier saved info.
EditText et;
et = (EditText) findViewById(R.id.EditTextName);
et.setText(userInfo.getString("name",""));
..... (Continue to fill forms in this context)
}
Оба действия заполняют форму предыдущей информацией и обновляют файл после отправки, если что-то изменилось;однако, похоже, что только NewCustomerActivity заполняет файл (или не требует принудительного закрытия, чтобы быть точным)
Я попытался настроить SharedPreference в MODE_WORLD_READABLE (второй параметр = 1), но безрезультатно;хотя я верю, что смогу запустить его в режиме «ЧАСТНЫЙ», как есть.Я также пытался сослаться на USER_INFO как NewCustomerActivity.USER_INFO
Я, должно быть, упускаю что-то очевидное - но любая помощь будет оценена, поскольку это моя первая попытка, спасибо!
Редактировать:
Для тех, кто спрашивает, как я пишу в файл:
SharedPreferences userInfo = getSharedPreferences(USER_INFO, 0); // Save info for later
SharedPreferences.Editor userInfoEditor = userInfo.edit();
EditText et;
et = (EditText) findViewById(R.id.EditTextName);
String nameValue = et.getText().toString();
userInfoEditor.putString("name", nameValue);