Общие настройки в кнопке - PullRequest
0 голосов
/ 05 января 2020

Я пытаюсь сохранить в общих настройках изменение фона и состояние кнопки, в этом случае это будет похоже на новый разблокированный уровень, где пользователю нужен счет, чтобы разблокировать уровень, но при выходе из приложения он возвращается в нормальное состояние, Как я могу сделать, чтобы сохранить это изменение? Помогите мне, пожалуйста, я искал ответ в нескольких местах, но мне не удалось, я был бы очень признателен, если бы вы могли мне помочь!

enter image description here

ImageView imagem;
Button button,buttonScore;
TextView mScore;
private boolean newLevel = false;
private int score = 0;

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

    imagem = findViewById(R.id.nivel);
    button = findViewById(R.id.botao);
    buttonScore = findViewById(R.id.bonusescore);
    mScore = findViewById(R.id.score);

    final SharedPreferences sharedPreferences = getSharedPreferences("USER",MODE_PRIVATE);

    mScore.setText("" + score);

    buttonScore.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            score += 20;
            mScore.setText("" + score);
        }
    });

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!newLevel){
                if (score > 19){
                    score += -20;
                    mScore.setText("" + score);
                    imagem.setBackgroundColor(getResources().getColor(R.color.azul));
                    button.setText("UNLOCKED");
                    button.setEnabled(false);
                    newLevel=true;
                }

            }else {
                imagem.setBackgroundColor(getResources().getColor(R.color.vermelho));
                button.setText("LOCKED");
                button.setEnabled(true);
                newLevel=false;

            }
        }
    });

}

}

Ответы [ 2 ]

0 голосов
/ 05 января 2020

Используйте следующий код:

 final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("USER",MODE_PRIVATE);
    SharedPreferences.Editor editor_user = sharedPreferences.edit();

    editor_user.putBoolean("button_clicked", button.isSelected());
    editor_user.putBoolean("buttonScore_clicked", buttonScore.isSelected());
    editor_user.apply();

    Boolean boolean = editor_user.getBoolean("button_clicked",false);

    if(boolean == true)
    {
     imagem.setBackgroundColor(getResources().getColor(R.color.azul));
    }
    else
    {
    imagem.setBackgroundColor(getResources().getColor(R.color.vermelho));
    }
0 голосов
/ 05 января 2020

Таким образом, вам нужно сохранить счет или состояние btn.

SharedPreferences предоставляет интерфейс для чтения и сохранения этих данных.

Для чтения значения:

sharedPreferences.getString(key1, default_value);
sharedPreferences.getBoolean(key2, default_value);

Для сохранения значения:

sharedPreferences.edit().putBoolean(key1, value).apply();
sharedPreferences.edit().putString(key2, value).apply();

Официальные документы: https://developer.android.com/training/data-storage/shared-preferences

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