【问题标题】:Android getText from EditText field来自 EditText 字段的 Android getText
【发布时间】:2011-11-04 05:35:59
【问题描述】:

我在从 EditText 字段获取文本以将其插入到电子邮件编辑器中时遇到问题。我已经在布局文件 (@+id/vnosEmaila) 中声明了 EditText 字段:

<?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>

按钮调用 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();
    }

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

【问题讨论】:

标签: android android-edittext


【解决方案1】:

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

Android Java 语法

EditText text = (EditText)findViewById(R.id.vnosEmaila);
String value = text.getText().toString();

Kotlin 语法

val text = findViewById<View>(R.id.vnosEmaila) as EditText
val value = text.text.toString()

【讨论】:

  • 总是有一个警告,text.getTExt() 可能返回 null。有什么好的简短的解决方案来检查这个吗? (这也看起来像干净可读的代码?)
  • @DavidT 我也不喜欢这种情况,但我认为声明 Editable editable = text.getText(); 然后像 value = editable == null ? "" : editable.toString(); 一样分配你的值(或任何你想要的默认值/逻辑)没有什么不可读的)。
【解决方案2】:

试试这个。

EditText text = (EditText)findViewById(R.id.edittext1);
String  str = text.getText().toString().trim();

【讨论】:

    【解决方案3】:

    试试这个 -

    EditText myEditText =  (EditText) findViewById(R.id.vnosEmaila);
    
    String text = myEditText.getText().toString();
    

    【讨论】:

      【解决方案4】:

      试试这个会解决你的问题....

      EditText etxt = (EditText)findviewbyid(R.id.etxt);
      String str_value = etxt.getText().toString();
      

      【讨论】:

        【解决方案5】:

        您可以通过应用以下代码来简单地获取editText中的文本:

        EditText editText=(EditText)findViewById(R.id.vnosZadeve);
        String text=editText.getText().toString();
        

        那么你就可以烤字符串文本了!

        编码愉快!

        【讨论】:

          【解决方案6】:

          使用这个:

            setContentView(R.layout.yourlayout);
          
            //after setting yor layout do the following
            EditText email = (EdiText) findViewById(R.id.vnosEmaila);
            String val = email.getText().toString;   // Use the toString method to convert the return value to a String.
          
            //Your Toast with String val; 
            Toast toast = Toast.makeText(EmailGumb.this, val, Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
          

          谢谢

          【讨论】:

          • 您在 email.getText() 上缺少 .toString() 调用!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多