Как сохранить значение количества касаний в кнопке Android Studio

#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)