大家好,我是android開發的新手。現在我有一個自己無法解決的問題。下面的代碼有什麼問題(特別是代碼中標出的行)?這是錯的嗎? TextView displayTextView =(TextView)findViewById(R.id.DisplayTextView);
MainActivity.java:
package com.amaker.ch02.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView displayTextView = (TextView)findViewById(R.id.DisplayTextView); <--Possibly this line
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayTextView.setText("change in the code");
}
}
運行,我在AVD得到一個信息:應用程序意外終止。請再試一次。但是,如果我不聲明後,立即指派displayTextView,督察我更改代碼如下,然後一切順利。
package com.amaker.ch02.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView displayTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayTextView = (TextView)findViewById(R.id.DisplayTextView);
displayTextView.setText("change in the code");
}
}
爲什麼?與這兩個代碼有什麼不同?
+1。 findViewById默認爲活動的佈局。由於活動的佈局在setContentView中「初始化」 – josephus 2012-02-01 07:07:50
謝謝。我知道了。 – Searene 2012-02-01 08:10:31