sharedpreferences не сохраняет текстовое значение - PullRequest
0 голосов
/ 17 марта 2020
**

Я пытаюсь сохранить текстовую переменную, используя Sharedpreferences. Я сохранил переменную по этому коду. Но когда я нажимаю кнопку, сохраненная переменная go возвращается к 0. Я хочу начать отсчет с сохраненного значения. пожалуйста, помогите мне

** int counter = 0;

public static final  String SHARED_PREF="shared";
public static final String TEXT="text";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    counterView=findViewById(R.id.counterid);
    Btn=findViewById(R.id.button1);

    Btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            counter++;
            counterView.setText(Integer.toString(counter));

            SharedPreferences sp = getSharedPreferences(SHARED_PREF, MODE_PRIVATE);
            SharedPreferences.Editor editor = sp.edit();
            editor.putString(TEXT,counterView.getText().toString());
            editor.commit();

        }

    });


    SharedPreferences sp = getSharedPreferences(SHARED_PREF, MODE_PRIVATE);
    String tValue = sp.getString(TEXT,"");
    counterView.setText(tValue);


}

}

1 Ответ

1 голос
/ 18 марта 2020

Учитывая предоставленную вами информацию, я думаю, вам нужно было указать counter значение, сохраненное в SharedPreferences, чтобы продолжить отсчет с того момента, когда кнопка была нажата снова. Попробуйте это:

 int counter = 0;
Button adBtn;
TextView counterView;
public static final  String SHARED_PREF="shared";
public static final String TEXT="text";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    counterView=findViewById(R.id.counterid);
    adBtn=findViewById(R.id.button1);

    adBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SharedPreferences counterSp = getSharedPreferences(SHARED_PREF, MODE_PRIVATE);
            String correctCounterValue = counterSp.getString(TEXT,"");
            counter = Integer.valueOf(correctCounterValue);
            counter++;
            counterView.setText(Integer.toString(counter));

            SharedPreferences sp = getSharedPreferences(SHARED_PREF, MODE_PRIVATE);
            SharedPreferences.Editor editor = sp.edit();
            editor.putString(TEXT,counterView.getText().toString());
            editor.commit();

        }

    });


    SharedPreferences sp = getSharedPreferences(SHARED_PREF, MODE_PRIVATE);
    String tValue = sp.getString(TEXT,"");
    counterView.setText(tValue);


}
...