Действие on-click EditText выполняется только при перефокусировке EditText - PullRequest
0 голосов
/ 07 июня 2019

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

Когда я делаю то же самое, не устанавливая android: imeOptions = "actionDone" в XML, все работает нормально (за исключением того, что клавиатура не закрывается, что, конечно, не закрывается)

Мой текст редактирования из XML:

<EditText
            android:id="@+id/name_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:hint="Name"
            android:imeOptions="actionDone"
            android:inputType="text"
            android:onClick="readName" />

Мой метод readName ():

public void readName(View view) {
        EditText nameEditText = (EditText) findViewById(R.id.name_edit_text);
        String nameWorking = nameEditText.getText().toString();
        name = nameWorking;
        displayOrderSummary();
    }

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Вместо использования android:onClick вы можете поместить в метод onCreate() следующее:

EditText nameEditText = (EditText) findViewById(R.id.name_edit_text);
nameEditText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        readName(v)
    }
}

0 голосов
/ 07 июня 2019

Не совсем уверен, как выглядит вся ваша деятельность, но я считаю, что если вы удалите привязку за пределами вашего readName() метода, он должен работать нормально.

Поместите код ниже в ваш onCreate().

EditText nameEditText = (EditText) findViewById(R.id.name_edit_text);

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