Как вы можете сбросить фон EditText по умолчанию после установки его прозрачным? - PullRequest
0 голосов
/ 19 февраля 2019

Итак, у меня есть EditText, где я отключаю его и устанавливаю прозрачный фон, когда пользователь нажимает клавишу ввода.У меня также есть кнопка сброса, и когда эта кнопка нажата, я хочу вернуть EditText к форматированию по умолчанию.Форматирование по умолчанию имеет включенную подсказку, без фона и только подчеркивание.(У меня недостаточно представителя, чтобы опубликовать, как выглядит начальное форматирование ...)

Независимо от того, что я пытаюсь, я не могу заставить его вернуться к этому форматированию.

Я пробовал

teamA.setBackgroundResource(android.R.drawable.edit_text);

, но это форматирование определенно не соответствует форматированию по умолчанию.

Я не могу установить форматирование для рисуемой переменной и вызвать ее позже, так как яЯ сохраняю переменные в связке в onSaveInstanceState, чтобы поддерживать их, если ориентация экрана меняется, и кажется, что вы не можете сохранить рисованный объект в связке.

Здесь я изменяю форматирование наEditText:

public TextView.OnEditorActionListener editorListenerA = new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            EditText teamA = findViewById(R.id.team_a);
            teamA.setEnabled(false);
            teamA.setBackgroundResource(android.R.color.transparent);
            teamA.setTextColor(getResources().getColor(android.R.color.black));
            teamAText = teamA.getText().toString();
            return false;
        }
    };

И вот здесь я пытаюсь сбросить его:

public void resetNames(View view) {
    EditText teamA = findViewById(R.id.team_a);
    teamA.setEnabled(true);
    teamA.setBackgroundResource(????????);
    teamA.setText("");
    teamA.setTextColor(getResources().getColor(android.R.color.darker_gray));
    teamA.setHint(getString(R.string.team_a_name));
}

1 Ответ

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

Вы можете сохранить свой старый фон, а затем использовать его, вот так:

Drawable teamABg = teamA.getBackground();

, а затем установить снова:

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