2011-03-16 115 views
38

看来我无法弄清楚如何从EditText中获取文本字符串。 我想按下按钮使用EditText中的文字。从EditText获取文本字符串?

layout.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/popup_menu_root" 
    android:background="#FFFFFF" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <Button android:id="@+id/popup_menu_button" 
     android:text="ok" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
    <EditText 
     android:id="@+id/edittext" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

我的活动:

public class MyClass extends Activity { 

    public String txtCheckin = "???"; 
    private String txtDescription = "???"; 
    private PopupWindow pw; 

    @Override 
    public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    // get the instance of the LayoutInflater 
    LayoutInflater inflater = (LayoutInflater) MyClass.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    // inflate our view from the corresponding XML file 
    final View layout = inflater.inflate(R.layout.popuplayout, (ViewGroup)findViewById(R.id.popup_menu_root)); 
    // create a 100px width and 200px height popup window 
    pw = new PopupWindow(layout, 100, 200, true); 

    final EditText edittextDescription = (EditText) findViewById(R.id.edittext); 

    // set actions to buttons we have in our popup 
    Button button = (Button)layout.findViewById(R.id.popup_menu_button); 
    button.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View vv) { 


     if (edittextDescription.getText() != null) 
     { 
      String newString = edittextDescription.getText().toString(); 
      transmitCheck("MANUAL", txtCheckin, "1", newString); 
     } 
     else 
     { 
      transmitCheck("MANUAL", txtCheckin, "1", "???"); 
     } 


     finish(); 
     } 
    }); 
} 

回答

5

解决自己的问题:

final EditText edittextDescription = (EditText) findViewById(R.id.edittext); 

必须

final EditText edittextDescription = (EditText)layout.findViewById(R.id.txtDescription); 

然后,我可以做到这一点,以获得串

String s = edittext.getText().toString(); 
62
private EditText txtDescription = 
     (EditText) layout.findViewById(R.id.txtDescription)  
String string = txtDescription.getText().toString(); 
+1

你就不能这样做'串串=(EditText上)layout.findViewById(R。 id.txtDescription).getText()。toString'? – 2016-08-12 23:23:45

+1

是的,你可以。但是,执行两次查找比保留对EditText的引用慢。 – Shark 2016-08-15 07:57:05

16

试试这个:

EditText edt = (EditText)findViewById(R.id.edittext); 
String xyz = edt.getText().toString();