После перехода из основного активти в другое и обратно, в основном активити обнуляются данные
Есть основное активити, когда из него перехожу в другое и возвращаюсь обратно, данные в основном активити обнуляются.
Единственное что приходит в голову это передать через putExtra (попробовал получилось), но мне кажется это не правильное решение туда-сюда гонять данные (из основного активити в другое, а потом те же самые данные из другого в основное).
метод onBackPressed(); срабатывает как надо, пока на свою кнопку "назад" поставил это метод, но это тоже мне кажется не правильным. Спасибо
основное активити
package com.example.testappv1;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private ImageView upgrade_img;
private ImageView men_level_img;
private ProgressBar progressBar;
private ConstraintLayout baseFonClicker;
private TextView money_text;
private TextView level_text;
private int countMoney = 0;
private int countProgress = 0;
private int countLevel = 1;
@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
upgrade_img = (ImageView) findViewById(R.id.upgrade_img);
men_level_img = (ImageView) findViewById(R.id.men_level_img);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setMax(10000);
money_text = (TextView) findViewById(R.id.money_text);
money_text.setText("Монеты: " + countMoney);
level_text = (TextView) findViewById(R.id.level_text);
level_text.setText("Уровень: " + countLevel);
baseFonClicker = (ConstraintLayout) findViewById(R.id.basefonclicker);
baseFonClicker.setOnClickListener(new View.OnClickListener() {
@SuppressLint("SetTextI18n")
@Override
public void onClick(View view) {
if (countLevel == 1) { LevelOne(); }
if (countLevel == 2) { LevelTwo(); }
if (countLevel == 3) { LevelThree(); }
if (countLevel == 4) { LevelFour(); }
if (countLevel == 5) { LevelFive(); }
if (countLevel == 6) { LevelSix(); }
if (countLevel == 7) { LevelSeven(); }
if (countLevel == 8) { LevelEight(); }
if (countLevel == 9) { LevelNine(); }
if (countLevel == 10) { LevelTen(); }
}
});
upgrade_img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, UpgradeActivity.class);
intent.putExtra("level", level_text.getText());
intent.putExtra("money", money_text.getText());
intent.putExtra("progress", progressBar.getAutofillValue());
startActivity(intent);
}
});
}
@SuppressLint("SetTextI18n")
private void postProgress(int progress) {
progressBar.setProgress(progress);
if (progressBar.getProgress() >= progressBar.getMax()) {
progressBar.setProgress(0);
countProgress = 0;
countLevel++;
}
}
@SuppressLint("SetTextI18n")
private void LevelOne() {
level_text.setText("Уровень: " + countLevel);
countMoney++;
countProgress = countProgress + 1000;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelTwo() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb2l);
countMoney = countMoney + 2;
countProgress = countProgress + 900;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelThree() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb3l);
countMoney = countMoney + 3;
countProgress = countProgress + 800;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelFour() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb4l);
countMoney = countMoney + 4;
countProgress = countProgress + 700;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelFive() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb5l);
countMoney = countMoney + 5;
countProgress = countProgress + 600;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelSix() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb6l);
countMoney = countMoney + 6;
countProgress = countProgress + 500;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelSeven() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb7l);
countMoney = countMoney + 7;
countProgress = countProgress + 400;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelEight() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb8l);
countMoney = countMoney + 8;
countProgress = countProgress + 300;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelNine() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb9l);
countMoney = countMoney + 9;
countProgress = countProgress + 200;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
@SuppressLint("SetTextI18n")
private void LevelTen() {
level_text.setText("Уровень: " + countLevel);
men_level_img.setImageResource(R.drawable.bb10l);
countMoney = countMoney + 10;
countProgress = countProgress + 100;
postProgress(countProgress);
money_text.setText("Монеты: " + countMoney);
}
} а это другое активити
public class UpgradeActivity extends AppCompatActivity {
private TextView back_view;
private TextView level_text;
private TextView money_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upgrade);
level_text = (TextView) findViewById(R.id.level_text);
back_view = (TextView) findViewById(R.id.back_view);
money_text = (TextView) findViewById(R.id.money_text);
level_text.setText(getIntent().getStringExtra("level"));
money_text.setText(getIntent().getStringExtra("money"));
back_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
}
}