为什么必须在onCreate中初始化对象?(Why must be objects initialized in onCreate?)

编程入门 行业动态 更新时间:2024-10-25 01:27:40
为什么必须在onCreate中初始化对象?(Why must be objects initialized in onCreate?)

我有以下代码:

public class MainActivity extends Activity { TextView number=(TextView)findViewById(R.id.number2); TextView number2=(TextView)findViewById(R.id.number2); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); number.setText("Text"); number.setText("Text"); }

接下来是更多代码,但是当我运行它时会崩溃。

在这之后我试图在onCreate()中初始化TextViews

public class MainActivity extends Activity { TextView number; TextView number2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); number=(TextView)findViewById(R.id.number); number2=(TextView)findViewById(R.id.number2); number.setText("Text"); number.setText("Text"); }

它工作。 为什么必须在onCreate中初始化对象?

I have the following code:

public class MainActivity extends Activity { TextView number=(TextView)findViewById(R.id.number2); TextView number2=(TextView)findViewById(R.id.number2); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); number.setText("Text"); number.setText("Text"); }

followed by more code, but when I run it it crashes.

After doing that i tried to initialize TextViews in onCreate()

public class MainActivity extends Activity { TextView number; TextView number2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); number=(TextView)findViewById(R.id.number); number2=(TextView)findViewById(R.id.number2); number.setText("Text"); number.setText("Text"); }

and it worked. Why must objects be initialized in onCreate?

最满意答案

在onCreate()之前,您的活动将没有Window 。 在窗口初始化之前尝试查找任何视图将导致NPE。

此外,尝试在setContentView()之前查找视图将返回null s,因此返回值不适合任何事情。

Your activity won't have a Window until onCreate(). Attempting to find any views before the window is initialized will lead to NPE.

Additionally, attempting to find views before setContentView() will return nulls and so the return values are not good for anything.

更多推荐

本文发布于:2023-08-01 04:41:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1352901.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:初始化   对象   onCreate   objects   initialized

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!