大家好,我是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