2013-09-28 69 views
0

我正在開發一個非常基本的Android應用程序,問題是當我試圖檢索EditText小部件的值時,它給了我一個空字符串。無法使用findViewById檢索EditText值

我的代碼如下:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button generateButton = (Button) findViewById(R.id.button1); 
    generateButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      //generateFibonacci(); 
      setContentView(R.layout.activity_main); 
      EditText seedValue = (EditText) findViewById(R.id.editText1); 
      TextView fibonacciSeries = (TextView) findViewById(R.id.textView3); 
      String a = seedValue.getText().toString(); 
      try { 
       int seedNumber = Integer.parseInt(seedValue.getText().toString()); 

       for (int i = 0; i < 100; i++) { 
        seedNumber += seedNumber; 
        fibonacciSeries.append(Integer.toString(seedNumber)); 
       } 
      } catch (Exception e) { 
       fibonacciSeries.append(e.toString()); 
      } 

     } 
    }); 
} 

和activity.xml

 <EditText 
    android:id="@+id/editText1" 
    android:inputType="number" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView1" 
    android:layout_below="@+id/textView1" 
    android:layout_marginTop="12dp" 
    android:hint="@string/hint" 
    android:ems="10" /> 

這裏SO通常得到通過修正佈局解決其他類似的問題看,但我想我我已經在正確的佈局,因爲我的控件是在我正在初始化的相同佈局,即R.layout.activity_main 和藹可親的幫助。

+0

是否有兩個名爲'activity.xml'和'activity_main.xml'的xml? – imranhasanhira

+0

activity.xml或activity_main.xml? – Manishika

回答

0

您打電話給setContentView(R.layout.activity_main)兩次。您不應再次撥打onClick()

也嘗試在您的Activity類中聲明EditText seedValue作爲實例變量。

public YourActivity extends Activity { 
    EditText seedValue; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

     Button generateButton = (Button) findViewById(R.id.button1); 
     generateButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      seedValue = (EditText) findViewById(R.id.editText1); 
      ... 
      ... 
     } 
    } 
} 
+0

哦該死! Thankyou通過從onClick方法中刪除'setContentView(R.layout.activity_main)'得到解決。非常感謝。 – Maven

+0

很高興幫助。 :) – epiphany27