#java #android #save #sharedpreferences
#java #Android #Сохранить #sharedpreferences
Вопрос:
Я хочу сохранить числовое значение, чтобы при закрытии приложения оно продолжало сохраняться, а при его открытии сохранялся прогресс. Я не знаю, почему SharedPreferences не работают. Я пробовал многими способами, но либо приложение заставляет его закрываться, либо оно просто не работает
число = numero
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView contador;
int numero = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences mPrefs = getSharedPreferences("valor", numero);
int data = mPrefs.getInt("valor", numero);
contador = findViewById(R.id.contador);
}
public void onClick(View v) {
numero ;
contador.setText(String.valueOf(numero));
SharedPreferences.Editor data = data.edit();
data.putInt("tag", numero).commit();
}
};
Ответ №1:
Вы должны использовать те же SharedPreferences для извлечения значений. кроме того, получите значения тем же ключом, которым вы их сохранили. ниже приведен пример, которому вы можете следовать.
SharedPreferences mPrefs = getSharedPreferences("valor",
Context.MODE_PRIVATE);
try{
int data = mPrefs.getInt("tag", numero);
}
catch(NullPointerException e){
e.printStackTrace()
}
public void onClick(View v) {
numero ;
contador.setText(String.valueOf(numero));
SharedPreferences.Editor editor = mPrefs.edit();
editor.putInt("tag", numero).commit();
}
};
Комментарии:
1. по-прежнему не работает, значение не сохраняется при повторном открытии приложения, но спасибо
2. E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.greenvegg. elhuevo, PID: 21060 java.lang.RuntimeException: не удалось создать экземпляр activity ComponentInfo{com.greenvegg. elhuevo/com.greenvegg. elhuevo.MainActivity}: java.lang. Исключение NullPointerException: попытка вызвать виртуальный метод ‘android.content. SharedPreferences android.content. Context.getSharedPreferences(java.lang. Строка, int)’ в нулевой ссылке на объект в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2548)
3. Вызвано: java.lang. Исключение NullPointerException: попытка вызвать виртуальный метод ‘android.content. SharedPreferences android.content. Context.getSharedPreferences(java.lang. Строка, int)’ на нулевой ссылке на объект в android.content. ContextWrapper.getSharedPreferences(ContextWrapper.java:164)