Я проверил подобные вопросы и отметил, кажется, работает. Я не могу понять, в чем проблема. Значение переходит в 0 после каждого перезапуска приложения или переключателя активности.Общие предпочтения в Android не сохраняются, когда я переключаю активность или закрываю приложение
//just parts of code from activity1
SharedPreferences pref;
SharedPreferences.Editor editor;
// On create....
pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
editor = pref.edit();
max=pref.getInt("mxtime", 0);
//If something>something...
editor.putInt("mxtime", max);
editor.commit();
В первой части я объявляю SharedPreferences в основной деятельности. Я сохраняю его в «max» int и всегда всегда 0 при запуске, так как если пустое значение равно 0. При втором действии у меня есть кнопка, где при нажатии она должна очистить значение от SharedPreferences.
активность 2:
public class settings extends AppCompatActivity {
private Button myButton;
private Button myButton2;
private Button myButton3;
//sharedPrefs
SharedPreferences pref;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
editor = pref.edit();
myButton = (Button) findViewById(R.id.button3);
myButton2 = (Button) findViewById(R.id.button4);
myButton3 = (Button) findViewById(R.id.button5);
myButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
});
myButton2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
//sharedPrefs
editor.remove("mxtime");
editor.commit();
}
});
}
}
** Почему ** вы удалите предпочтения от ваших предпочтений 'editor.remove ("mxtime");'? И ** где ** вы устанавливаете значение для 'max'? –
Я установил значение для max непосредственно перед сохранением его в SharedPrefs. И я изменил editor.remove на editor.clear(). – ScaredFace
** Почему ** вы удаляете все предпочтения из своих настроек 'editor.clear();'? И ** которое ** является значением, которое вы назначаете 'max'? –