Java 如何使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消息显示;这很好,

我有一个编辑文本和按钮。EditText用于用户名。我有一个问题,我的代码如下

 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) {}

            }
    )