2011-08-26 37 views
25

Tôi gặp sự cố khi nhận văn bản từ trường EditText để chèn văn bản vào trình soạn thảo Email với mục đích. Tôi đã tuyên bố EditText trường trong tệp bố trí (@ + id/vnosEmaila):Android getText từ trường 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> 

Nút gọi phương thức onClick "sestaviEmail" và tôi đã tuyên bố:

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(); 
    } 

Tôi chỉ thấy nó với bánh mì nướng vì nó nhanh hơn nhưng mỗi khi tôi cố gắng để có được văn bản từ trường tôi nhận được "sai". Tất cả các câu hỏi khác mà tôi đã tìm thấy có mã mà tuyên bố Button trong phương pháp và không phải trong bố trí, có lẽ đây là một phần của vấn đề?

+0

có thể trùng lặp của [Lấy giá trị của trường Chỉnh sửa văn bản] (http://stackoverflow.com/questions/4531396/get-value-of-a-edit-text-field) – Mafro34

Trả lời

76

Mẫu mã cho Làm thế nào để có được văn bản từ EditText.

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

Luôn luôn có một cảnh báo rằng 'text.getTExt()' có thể trả về null. có bất kỳ giải pháp ngắn gọn và ngắn gọn nào để kiểm tra điều này không? (đó cũng giống như mã dễ đọc?) –

+0

@DavidT Tôi không thích tình huống này, nhưng tôi không nghĩ có bất cứ điều gì không đọc được về việc khai báo 'Editable editable = text.getText();' và sau đó gán giá trị của bạn như 'value = editable == null? "": editable.toString(); '(hoặc bất kỳ giá trị mặc định/logic nào bạn muốn). – async

4

Hãy thử điều này -

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

String text = myEditText.getText().toString(); 
-1

Sử dụng này:

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(); 

Cảm ơn

+2

email.getText() không phải là một chuỗi ... – Fortega

+0

Bạn đang thiếu. toString() gọi trên email.getText()! – Marko

1

Hãy thử điều này sẽ giải quyết vấn đề ur ....

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

Hãy thử điều này.

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

Editable str = txt.getText().toString(); 

Toast toast = Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG); 

toast.show(); 
+0

Điều này chủ yếu chỉ lặp lại các câu trả lời hiện có. – Pang

0

Bạn chỉ có thể nhận được các văn bản trong EditText bằng cách áp dụng mã dưới đây:

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

sau đó bạn có thể bánh mì nướng chuỗi văn bản!

Mã hóa vui vẻ!