У меня есть активность с двумя TextViews, которые показывают значения int. Эти значения изменяются постепенно (1, 2, 3 и т. Д.), Когда пользователь нажимает кнопку. Я использую SharedPreferences
для сохранения этих значений с помощью нажатия кнопки. Когда я закрываю приложение и снова его открываю, значения отображаются правильно в TextViews, но если они меняются, их следует добавить из предыдущего сохраненного значения. Проблема в том, что они начинают отсчитываться от нуля.Общие предпочтения не сохраняют данные int
Вот мой код:
public class Roulette1 extends ActionBarActivity {
Button button0, button1;
int click_button0, click_button1;
public static final String button0Str = "button0Key";
public static final String button1Str = "button1Key";
public static final String MyPREFERENCES = "MyPrefsRoulette1";
SharedPreferences sharedpreferences;
TextView times_0_tv;
TextView times_1_tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout1);
times_0_tv = (TextView) findViewById(R.id.times_0);
times_1_tv = (TextView) findViewById(R.id.times_1);
button0 = (Button) findViewById(R.id.button0);
button1 = (Button) findViewById(R.id.button1);
final TextView total_clicks_tv = (TextView) findViewById(R.id.total_clicks);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
click_button1 = click_button1 + 1;
int total_clicks = click_button0 + click_button1;
total_clicks_tv.setText(String.valueOf(total_clicks));
times_0_tv.setText(click_button0);
times_1_tv.setText(click_button1);
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
click_button0 = click_button0 + 1;
int total_clicks = click_button0 + click_button1;
total_clicks_tv.setText(String.valueOf(total_clicks));
times_0_tv.setText(click_button0);
times_1_tv.setText(click_button1);
}
});
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
if (sharedpreferences.contains(button0Str))
{
times_0_tv.setText(sharedpreferences.getString(button0Str, ""));
}
if (sharedpreferences.contains(button1Str))
{
times_1_tv.setText(sharedpreferences.getString(button1Str, ""));
}
}
public void run1(View view) {
SharedPreferences.Editor editor = sharedpreferences.edit();
String times0string = times_0_tv.getText().toString();
String times1string = times_1_tv.getText().toString();
editor.putString(button0Str, times0string);
editor.putString(button1Str, times1string);
editor.commit();
}
Надежда у вас есть какие-либо идеи. Благодаря!
«Проблема в том, что они начинают отсчитываться от нуля». Счастливчик. Вы даже не инициализируете их до нуля. Или другое значение. Для этого вы должны получить предупреждение о компиляции. – greenapps
'Общие настройки не хранят данные int. Неправильно. Вы пытаетесь сохранить строки. Не ints. – greenapps