2014-03-26 15 views
0
public class MainActivity extends Activity { 

    EditText number1, number2; 
    String number_1, number_2; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     number1 = (EditText) findViewById(R.id.number1); 
     number2 = (EditText) findViewById(R.id.number2); 
     number_1 = number1.getText().toString(); 
     number_2 = number2.getText().toString(); 

爲什麼number_1有一個空值。爲什麼在OnCreate方法中EditText轉換爲字符串不成立

+2

onCreate()在創建Activity時被調用......那時沒有文本被設置爲EditText這就是爲什麼它返回空的String ..爲此你需要一個按鈕並寫入監聽器和得到的價值.. –

+0

@ kalyanpvs謝謝你的解釋.... – user3237300

+0

你*期待*看到什麼? – Simon

回答

0

onCreate方法是創建視圖。
所以EditText number1,nubmer2還沒有創建。
如果您想獲得number1或number2的值,請在onPause()中嘗試。

0

試試這個..

你必須讓文本像OnClick同時啓動的應用程序都的EditText是空的。以便它返回空。

number_1 = number1.getText().toString(); 
number_2 = number2.getText().toString(); 
0

確保您已在預定義的EditText的價值和應工作

0

你需要的東西來填補EditTexts,才能讓它們的價值。所以創建一個按鈕,填充EditTexts,然後通過單擊按鈕來獲取它們的值。

也許是這樣的:

public class MainActivity extends Activity { 

EditText number1, number2; 
String number_1, number_2; 
Button submit; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    number1 = (EditText) findViewById(R.id.number1); 
    number2 = (EditText) findViewById(R.id.number2); 
    submit = (Button)findViewById(R.id.btn1); //Define a button in your layout xml file with the ID field set as "btn1" 

    submit.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
    number_1 = number1.getText().toString(); 
    number_2 = number2.getText().toString(); 
} 
    }); 
0

我需要看到你的XML ....如果你試圖讓你無論如何都要解析字符串爲int的數字......什麼是你想實現?你只是想要從每個文字瀏覽文本?有沒有文字在XML中設置?

0
Make sure you have predefined the value in the edittext in xml file. 
like in your layout file android:text="your string" or else you have to set string after binding 
oncreate method like. 
     number1 = (EditText) findViewById(R.id.number1); 
     number2 = (EditText) findViewById(R.id.number2); 
     number1.setText("your string"); 

    then you have to get string from below code. 

     number_1 = number1.getText().toString(); 
     number_2 = number2.getText().toString(); 
相關問題