2014-01-22 51 views
1

如何獲取用戶從按下onClick時調用的函數中鍵入的EditText的值。我在下面試過,但它不起作用。謝謝您的幫助。從onclick函數獲取EditText值

<EditText android:id="@+id/myEditT" /> 

<Button android:text="MY BUTTON" android:onClick="GetThis" /> 

public void GetThis(View view) { 


    EditText x = (EditText)parentView.findViewById(R.id.myEditT); 

    // alert the x variable 

} 

回答

1
EditText x = (EditText) findViewById(R.id.myEditT); 
String your_text = x.getText().toString(); 
1

在XML中,

<EditText android:id="@+id/myEditT" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"/> 
<Button android:id="@+id/myButton" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"/> 

在Java中,

public void onCreate(Bundle saved){ 
    super.onCreate(saved); 
    setContentView(R.layout.your_xml); 
    Button btn = (Button) findViewById(R.id.myButton); 
    EditText edtText = (EditText) findViewById(R.id.myEdit); 
    btn.setOnClickListener(new onClickListener(
     public void onClick(View v){ 
      String value = edtText.getText().toString(); 
     } 
    )); 
} 
+0

謝謝,但它不工作 - 它不會看到「edtText」 –

+1

@你好,世界,對你來說它是x.getText()。toString(); – Vigbyor

0
public void GetThis(View view) { 
    EditText x = (EditText)view.findViewById(R.id.myEditT); 
    String edittextvalue = x.getText().toString(); 
} 
+0

感謝您的回覆 - 但仍然存在問題。 x返回爲空。你知道爲什麼嗎? –

0
EditText x; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_xml); 
    x = (EditText)parentView.findViewById(R.id.myEditT); 
    public void GetThis(View view) { 
    String s=x.getText().toString(); 
} 
+0

請參閱此鏈接http://stackoverflow.com/questions/18807186/null-pointer-exception-getting-edittext-value – Gayathiri

0
EditText x = (EditText)findViewById(R.id.myEditT); 

public void GetThis(View view) { 
    String getEditTextValue = x.getText().toString(); 
    Toast.makeText(getApplicationContext(), getEditTextValue, Toast.LENGTH_LONG).show(); 
}