Переменная счетчика не обновляется при переключении между представлениями - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать счетчик, который обновляется каждый раз, когда вы возвращаетесь к основному виду.Единственная проблема заключается в том, что каждый раз, когда я возвращаюсь к главному виду, счетчик сбрасывается в 1.

package com.example.usingintent2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private int counter = 0;
    Button btn;
    TextView txv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txv = (TextView) findViewById(R.id.counterText);
    }
    public void onClick(View view) {
        startActivity(new Intent("com.example.usingintent2.SecondActivity"));
        counter++;
        txv = (TextView) findViewById(R.id.counterText);
        txv.setText(Integer.toString(counter));
    }
    public void onStart(){
        super.onStart();
        counter++;
        txv = (TextView) findViewById(R.id.counterText);
        txv.setText(Integer.toString(counter));
    }
    public void onResume(){
        super.onResume();
        counter++;
        txv.setText(Integer.toString(counter));
    }


}

1 Ответ

0 голосов
/ 01 февраля 2019

Вы должны использовать saveInstanceState Bundle для сохранения вашего значения.

  public TextView txv;
  private static final String KEY_USERENTRY = "KEY_USERENTRY";
  private int counter;


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

txv = (TextView) findViewById(R.id.textView);
txv.setText(Integer.toString(counter));
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt(KEY_USERENTRY, yourvalue);


}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    counter = savedInstanceState.getInt(KEY_USERENTRY);


}
}

yourvalue - это значение, которое вы хотите сохранить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...