Я пытаюсь взять строку от пользователя и использовать ее позже, когда приложение закрыто. Теперь оно работает, когда приложение находится в фоновом режиме, но я теряю строку, когда я закрываю приложение .. есть способ сделать это, как это, или я должен использовать SharedPreference, и если я должен использовать его, пожалуйста, объясните, как, потому что я пытался и не смог.Сохранение строки, даже если приложение закрыто
это мой код в моем MainActivity к строке из
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
private static String reminder;
private EditText et;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialize variables
sharedPreferences = getSharedPreferences("MyPREFERENCES",Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et = (EditText) findViewById(R.id.Name);
reminder = et.getText().toString();
if(reminder == null){
reminder = "TWEAK!";
}
editor.putString("TAG",reminder);
editor.commit();
// do stuff
}
// get the user's string
public String getRem() {
reminder = sharedPreferences.getString("TAG", "");
return reminder;
}
аварий приложение EditText и дает
«Попытка вызова метода интерфейса«java.lang.String android.content .SharedPreferences.getString (java.lang.String, java.lang.String)»на нулевой ссылки на объект»
на этой линии
reminder = sharedPreferences.getString("TAG", "");
это класс, где я вызываю метод
public class Notifications extends BroadcastReceiver {
private String rem;
// set notification
@Override
public void onReceive(Context context, Intent intent) {
// object to access MainActivity methods
MainActivity main = new MainActivity();
rem = main.getRem();
}
Можете ли вы показать весь класс (ы) в виде [ mcve], а не только эти маленькие образцы кода? 'sharedPreferences' имеет значение null, поскольку оно не инициализировано каким-то образом. –
Я добавил весь мой класс MainActivity..i просто разместил фрагменты, связанные с моим вопросом. –
Не добавляйте все это, прочитайте эту ссылку, пожалуйста. Не все добавленные вами коды связаны с SharedPreferences. –