我注意到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()
返回。
如果您不执行以下任何操作,那么您唯一可以尝试的就是重建/清理构建项目:
-
editText.setText()
在 Java 代码中,也不 -
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()