Есть 3 пункта, которые я рекомендую вам:
Точка 1:
Попробуйте дать вашему общему предпочтению имя. Пример:
sharedPreferences = getSharedPreferences("sharedPrefName", MODE_PRIVATE);
Если вы не даете имя общему предпочтению, Android может впасть в неоднозначность и создать новое общее предпочтение, таким образом, не затрагивая старое.
Даже если вы создаете новую SharedPreference внутри метода onClick (этот процесс неправильный), и там система Android не может понять, какой Shared Preference использовать, таким образом, не влияя на данные sharedpreference, которые вы хотите изменить.
Точка 2:
Это не так важно, как первое, но для изменения данных уже существующего предпочтения вам не нужно удалять предпочтение, вместо этого просто измените значение, и оно будет обновлено по вашему требованию:
sharedPreferences.edit().putInt("num", Question++).apply();
Точка 3:
Создайте объект SharedPreference один раз внутри класса, где он может
имеют глобальный охват.
Инициализируйте SharedPreference только один раз в действии внутри
Метод onCreate.
Сделайте ваш код примерно таким:
public class MainActivity extends AppCompatActivity {
SharedPreferences sharedPreferences;
ConstraintLayout layout;
int Question = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
layout = findViewById(R.id.layout);
sharedPreferences = getSharedPreferences("sharedPrefName", MODE_PRIVATE);
Question = sharedPreferences.getInt("num",0);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sharedPreferences.edit().putInt("num", Question++).apply();
}
});
}
}