Котлин: EditText не очищается, странно - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь сбросить EditText после отправки формы.EditText находится внутри TextInputLayout.

Фрагмент XML EditText:

<android.support.design.widget.TextInputLayout
                android:id="@+id/til_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/et_email"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Email ID *"
                    android:inputType="textEmailAddress"
                    android:textSize="10sp" />

</android.support.design.widget.TextInputLayout>

Фрагмент Kotlin:

private lateinit var etEmail: EditText
private lateinit var tilEmail: TextInputLayout

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_online_academy)

        etEmail = findViewById(R.id.et_email)
        tilEmail = findViewById(R.id.til_email)

    }

Я пробовал разные методы для очистки EditText, но ничего не работает.

Метод 1:

etEmail.text.clear()

Метод 2:

etEmail.text = null

Метод 3:

etEmail.setText("", TextView.BufferType.EDITABLE)

Метод 4:

val blank = "\u0020"
etEmail.setText(blank)

Метод5:

textInputLayoutEmail.editText.text.clear()

Метод 6:

etEmail.post { etEmail.text.clear() }

Я не получаю никаких ошибок или предупреждений в logcat.Форма отправки тоже отлично работает.Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

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

Есть несколько вещей, которые вы можете попробовать

  1. Прежде всего, просто удалите очищающий код.И вместо очистки edittextView просто поместите некоторую строку , чтобы увидеть, можете ли вы установить строку в своем коде.Если вы можете установить любую строку, например et_email.setText("some random string"), просто замените эту строку на этот код et_email.setText("")
  2. Если она все еще не работает (вы можете установить строку, но не можете установить ""строка) Тогда это не просто странно, это странная вещь.Вы обязательно должны попробовать свой код на каком-либо другом устройстве или просто перезапустить свой телефон или эмулятор Android.
  3. Если вы проводите тестирование в эмуляторе, я настоятельно рекомендую проверить это в устройстве Actual или в новом эмуляторе или просто удалить приложение и переустановить его.Вызывает странное и необычное поведение (если не из-за кодирования или логических ошибок). В большинстве случаев это просто из-за неизвестных проблем с программным обеспечением или из-за заражения компьютера.
  4. Последняя, ​​но не менее важная попытка чистой сборки или Неверный кеш и перезапустите Android Studio и перекомпилируйте весь код
0 голосов
/ 22 ноября 2018

Прежде всего убедитесь, что у вас есть строка ниже при импорте активности вашего класса:

import kotlinx.android.synthetic.main.activity_online_academy.*

В Kotlin вам не нужно использовать findViewById.Вы можете использовать et_email и til_email в любом месте кода класса активности.Так что просто сделай et_email.setText("")

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