我正在尝试在提交表单后重置EditText。 EditText在TextInputLayout内部。
EditText的Xml代码段
<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>
科特琳片段:
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中没有收到任何错误或警告。表单提交也可以。谢谢。
答案 0 :(得分:0)
首先,请确保您在课堂活动的导入中包含以下行:
import kotlinx.android.synthetic.main.activity_online_academy.*
在Kotlin中,您无需使用findViewById
。
您可以在活动类代码中的任何地方使用et_email
和til_email
。
因此,et_email.setText("")
答案 1 :(得分:0)
有一些与调试相关的问题需要找出。可能是由于您代码的其他部分正在干扰而导致某些奇怪的行为,或者只是设备上的故障而已。
您可以尝试一些事情
et_email.setText("some random string")
之类的任何字符串,则只需将此行替换为此代码et_email.setText("")