尝试在 null 对象上调用虚拟方法时出现空指针异常 引用 android studio

Null pointer exception trying to invoke virtual method on a null object reference android studio

提问人:CastroNcube 提问时间:8/24/2021 更新时间:8/24/2021 访问量:1135

问:

我正在尝试在我的 android 程序中隐藏一个按钮。我的XML布局文件中有一个ID为“btn_add”的按钮。现在,我希望它在打开活动时不可见。当我检查logcat中的错误时,我在将可见性设置为“View.INVISIBLE”的行上收到错误“尝试在空对象引用上调用虚拟方法时出错”。

当我为名为“like”且 id 为“btn_like”的图像视图创建一个 onlcick 侦听器时,我也会遇到同样的错误。以下 java 代码负责此。

您的即时帮助将不胜感激。

Button btn_add;
ImageView like;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    btn_add=findViewById(R.id.add_product);
    btn_add.setVisibility(View.INVISIBLE);

    like = findViewById(R.id.like);

    like.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(BusinessActivity.this,"liked",Toast.LENGTH_SHORT).show();

        }
    });

}}

Android NullReferenceException

评论


答:

1赞 Yasiru Nayanajith 8/24/2021 #1

super.oncreate() 下面的代码中缺少此行。未设置 contentView。在访问 UI 元素之前设置 contentview。

    setContentView(R.layout.your_activity_xml_layout);

最后

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.your_activity_xml_layout);

btn_add=findViewById(R.id.add_product);
btn_add.setVisibility(View.INVISIBLE);

like = findViewById(R.id.like);

like.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(BusinessActivity.this,"liked",Toast.LENGTH_SHORT).show();

    }
});

}}

评论

0赞 CastroNcube 8/24/2021
非常感谢,我没有意识到这一点。你很棒,我的男人