EditText.getText().toString() 返回提示.如何返回空字符串



我注意到EditText.getText().toString()甚至返回提示。如果 EditText 字段为空,有什么方法可以返回提示?

当然,我可以检查toString()是否返回提示,但这听起来不是很合理。

这是我的 EditText 的 XML:

<EditText
    android:id="@+id/add_assignment_title_edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/add_assignment_title_textview"
    android:layout_marginStart="50dp"
    android:gravity="center"
    android:hint="@string/title_hint"/>

这是我使用它的方式:

EditText titleEditText = (EditText) view.findViewById(R.id.add_assignment_title_edittext);
// Then I access it with
String titleStr = titleEditText.getText().toString();

正如这个答案所述,提示只会用 editText.getHint().toString() 返回。

如果您不执行以下任何操作,那么您唯一可以尝试的就是重建/清理构建项目

  1. editText.setText()在 Java 代码中,也不
  2. android:text="@string/title_hint"在 XML 中。
我不知道

你想用EditText.toString()做什么.但是,如果您希望该toString()返回一些特殊的东西,最好的方法是创建自定义的EditText。

喜欢:

import android.content.Context;
import android.util.AttributeSet;
import android.widget.EditText;

public class CustomEditText extends EditText {
    public CustomEditText(Context context) {
        super(context);
    }
    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    public String toString() {
        //return what you want
    }
}

使用这个:

yourEditText.getText().toString();

您首先需要"getText(("方法。

使用 editText.getText().toString()

编辑:这里有一些代码,可能是错误在你的xml中

main_activity.xml:

<EditText
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Write here"/>

MainActivity.kt:

val editText = findViewById(R.id.text_view) as EditText
println("-> ${editText.text}")

无需键入任何内容即可输出:

$ ->

输出键入"hello":

$ -> hello

仅为了完整起见,Java 代码中的 MainActivity :

EditText editText = findViewById(R.id.text_view);
Log.d(TAG,"-> "+ editText.getText());

这行得通

EditTextName.getEditableText()

最新更新