【问题标题】:Kotlin: EditText is not getting cleared, StrangeKotlin:EditText 没有被清除,奇怪
【发布时间】:2018-11-22 12:29:09
【问题描述】:

我正在尝试在表单提交后重置 EditText。 EditText 在 TextInputLayout 内。

EditText的Xml sn-p:

<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 sn-p:

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,但没有任何效果。

方法一:

etEmail.text.clear()

方法二:

etEmail.text = null

方法三:

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

方法四:

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

方法五:

textInputLayoutEmail.editText.text.clear()

方法六:

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

我在 logcat 中没有收到任何错误或警告。表单提交也可以正常工作。谢谢。

【问题讨论】:

  • 您想要清晰的提示或文字?
  • etEmail 初始化代码发布
  • 我想清除提交表单时输入的文本
  • @sasikumar 添加了初始化代码

标签: android kotlin android-edittext


【解决方案1】:

首先确保您在类活动的导入中有以下行:

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

在 Kotlin 中,您不需要使用 findViewById
您可以在活动类代码中的任何位置使用et_emailtil_email
所以就做et_email.setText("")

【讨论】:

  • 删除了edittext初始化语句并导入了xml布局,但我仍然无法清除edittext
【解决方案2】:

有一些与调试相关的问题需要查找。由于您的代码的其他部分干扰或可能只是设备上的故障,可能会出现一些奇怪的行为。

您可以尝试一些事情

  1. 首先只需删除清除代码。而不是清除edittextView,只需放置一些 string 来查看您是否能够通过代码设置字符串。如果您能够设置任何字符串,例如et_email.setText("some random string"),那么只需将此行替换为此代码et_email.setText("")
  2. 如果还是不行(你可以设置字符串但不能设置""字符串)那么这不仅仅是奇怪,这是奇怪的事情。您绝对应该在其他设备上尝试您的代码,或者只是重新启动您的 android 手机或模拟器。
  3. 如果您在模拟器中进行测试,我强烈建议您在实际设备或新模拟器上进行测试,或者只是卸载应用程序并重新安装。导致奇怪和不寻常的行为(如果不是由于编码或逻辑错误)大多数情况下仅仅是由于未知软件问题或计算机感染。
  4. 最后但并非最不重要的一点是尝试清理构建或使缓存无效并重新启动 android studio 并重新编译整个代码

【讨论】:

  • 1.我已经尝试过了,我无法清除或设置任何文本。设置提示也不起作用 2 & 3 。我没有使用模拟器,在 2 部手机中进行测试,两者的行为相同。 4. 已经试过了,这个奇怪的行为没有改变。
  • @ZayidMohammed 尝试一些新的活动或一些新的 xml 文件。弄清楚它是否只针对特定活动的行为,还是其他什么。
猜你喜欢
  • 2016-02-09
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多