登录
首页 >  文章 >  java教程

Android软件闪退:为什么代码在setContentView()之前调用findViewById()会导致闪退?

时间:2024-11-26 12:58:01 327浏览 收藏

今天golang学习网给大家带来了《Android软件闪退:为什么代码在setContentView()之前调用findViewById()会导致闪退?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

Android软件闪退:为什么代码在setContentView()之前调用findViewById()会导致闪退?

android软件闪退

一位android初学者在模拟器上运行代码时遇到闪退问题,以下是他提供的代码:

public class mainactivity extends appcompatactivity {
    final webview webview = findviewbyid(r.id.webview);
    // ...
}

问题:

问题出在代码中过早调用findviewbyid()函数。在调用setcontentview()设置布局之前,findviewbyid()无法找到任何视图。

解决方案:

将findviewbyid()调用移动到setcontentview()之后,如下所示:

public class MainActivity extends AppCompatActivity {
    WebView webView;
    // ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.webView = findViewById(R.id.WebView);
        // ...
    }
}

现在,setcontentview()将加载布局并渲染视图,然后findviewbyid()才能正确找到webview视图。这样就可以解决闪退问题。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>