最近,我正在做一个非常小的培训项目。 但是我的代码中有一个错误:
public class MainActivity extends AppCompatActivity {
TextView textView = (TextView) findViewById(R.id.textview);
@override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView.setText("Welcome");
}
}
但是当我尝试剪切 textview 全局变量并将其粘贴到 onCreate 方法中时,错误消失了。尽管我已经在全局变量中对 textView 进行了膨胀,为什么会出现此错误?!
答案 0 :(得分:0)
您需要在调用 findViewById(...)
后调用 setContentView(...)
。
由于没有视图,因此无法在膨胀布局之前获取视图。
答案 1 :(得分:0)
findViewById()
只能在 onCreate 中的 setContentView()
之后使用。
这就是整个布局膨胀的地方。只有这样您才能使用 findViewById()
访问视图。
答案 2 :(得分:0)
这就是你想要的:
public class MainActivity extends AppCompatActivity {
TextView textView;
@override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textview);
textView.setText("Welcome");
}
}