来自EditText字段的Android getText

Ale*_*ito 29 android android-edittext

我有一个问题,从EditText字段中获取文本以将其插入电子邮件编辑器中.我EditText在布局文件中声明了字段(@ + id/vnosEmaila):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/navodiloEmail"
    android:text="@string/navodiloEmail"
    android:textSize="15dip"/>
<EditText 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/vnosEmaila"
    android:layout_below="@id/navodiloEmail"/>
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/navodiloZadeva"
    android:text="@string/navodiloZadeva"
    android:layout_below="@id/vnosEmaila"
    android:textSize="15dip"/>
<EditText 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/vnosZadeve"
    android:layout_below="@id/navodiloZadeva"/>
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/navodiloBody"
    android:text="@string/navodiloBody"
    android:layout_below="@id/vnosZadeve"
    android:textSize="15dip"/>
<EditText 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/vnosBody"
    android:layout_below="@id/navodiloBody"/>
<Button 
    android:id="@+id/klicIntentEmail"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/sestaviEmail"
    android:onClick="sestaviEmail"
    android:layout_below="@id/vnosBody"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

该按钮调用onClick方法"sestaviEmail",我已声明它:

public void sestaviEmail (View view){
    CharSequence test = getText(R.id.vnosEmaila);
    Toast toast = Toast.makeText(EmailGumb.this, test, Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, 0, 0);
    toast.show();
    }
Run Code Online (Sandbox Code Playgroud)

我只是用Toast显示它,因为它更快但每次我尝试从字段中获取文本时我都会"假".我发现的所有其他问题都有代码,这些代码在方法中而不是布局中声明了Button,也许这是问题的一部分?

Nir*_*tel 89

如何从中获取文本的示例代码EditText.

Android Java语法

EditText text = (EditText)findViewById(R.id.vnosEmaila);
String value = text.getText().toString();
Run Code Online (Sandbox Code Playgroud)

Kotlin语法

val text = findViewById<View>(R.id.vnosEmaila) as EditText
val value = text.text.toString()
Run Code Online (Sandbox Code Playgroud)

  • 总是有一个警告:`text.getTExt()`可以返回null.有什么好的简短的解决方案来检查这个?(这也看起来像干净的可读代码?) (2认同)

Ran*_*oid 10

试试这个.

EditText text = (EditText)findViewById(R.id.edittext1);
String  str = text.getText().toString().trim();
Run Code Online (Sandbox Code Playgroud)


Abh*_*nda 5

尝试这个 -

EditText myEditText =  (EditText) findViewById(R.id.vnosEmaila);

String text = myEditText.getText().toString();
Run Code Online (Sandbox Code Playgroud)