Java 如何使EditText不为空?
我有一个编辑文本和按钮。EditText用于用户名。我有一个问题,我的代码如下Java 如何使EditText不为空?,java,android,android-studio,Java,Android,Android Studio,我有一个编辑文本和按钮。EditText用于用户名。我有一个问题,我的代码如下 String fullname = editText.getText().toString(); if (TextUtils.isEmpty(fullname)){ Toast.makeText(this, "Name should not be empty", Toast.LENGTH_SHORT).show(); 我的问题是,当用户点击按钮而不放任何东西时,toast消息显示;这很好,
String fullname = editText.getText().toString();
if (TextUtils.isEmpty(fullname)){
Toast.makeText(this, "Name should not be empty", Toast.LENGTH_SHORT).show();
我的问题是,当用户点击按钮而不放任何东西时,toast消息显示;这很好,但是当用户放置空间时,它存储的fullname值为空。我不想要空值 您应该修剪输入:
fullname.trim().isEmpty()
以去除前导和尾随空格。因此,如果你有一个空白的输入,它会认为它是空的。 当文本无效时,我会禁用按钮。最好尽早验证,而不是过早地允许操作。也可以使用TextWatcher
修改用户输入以删除无效空格等
<EditText
android:id="@+id/editText"
android:layout_margin="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"/>
<Button
android:id="@+id/button"
android:layout_margin="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@android:string/ok"/>
您可以检查是否有这样的空格
editText.getText().toString().contains(“”)代码>
editText.addTextChangedListener(
object : TextWatcher {
override fun afterTextChanged(s: Editable) {
button.isEnabled = s.trim().isNotEmpty()
}
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
}
)