为什么这样不起作用-Android-onCreate()

为什么这样不起作用-Android-onCreate(),第1张

概述以下代码不起作用,并引发由NullPointerException引起的RuntimeExceptionpublic class ListFilteredActivity extends Activity { LinearLayout typeSelector = new LinearLayout(this) ; @Override

以下代码不起作用,并引发由NullPointerException引起的RuntimeException

public class ListFilteredActivity extends Activity {    linearLayout typeSelector = new linearLayout(this) ;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         ScrollVIEw sv = new ScrollVIEw(this);         this.setContentVIEw(sv);         //this.typeSelector = new linearLayout(this);         this.typeSelector.setorIEntation(linearLayout.VERTICAL);         sv.addVIEw(this.typeSelector);     }

当我在onCreate()中移动this.typeSelection的初始化时,它的效果很好.

    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {       ...       this.typeSelector = new linearLayout(this);       ...    }

为什么会出现空指针错误?第一段代码中的内联声明在调用构造函数后立即发生,然后onCreate()可以访问该对象,不是吗?最佳答案linearLayout要求您传入Context.这是一个AndroID生命周期对象,而不是Java对象.直接声明和初始化字段时,将使用Java默认构造函数对其进行初始化.但是,一旦onCreate生命周期方法发生,您将仅获得上下文,该方法要晚得多了,并且是AndroID(而不是Java)的一部分.因此,当您以此方式调用linearLayout构造函数时,AndroID会期望对Context的引用,该引用仅在调用onCreate之后获得. 总结

以上是内存溢出为你收集整理的为什么这样不起作用-Android-onCreate() 全部内容,希望文章能够帮你解决为什么这样不起作用-Android-onCreate() 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1145368.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存