gpt4 book ai didi

java - 从类对象的方法接收空指针异常

转载 作者:行者123 更新时间:2023-12-01 06:19:30 25 4
gpt4 key购买 nike

我有一个在“主”XML 文件中声明的自定义 View :

    <com.app.DrawView
android:id="@+id/my_view"
android:layout_height="match_parent"
android:layout_width="match_parent" />

然后在我的 Activity 的 onCreate 方法中:

setContentView(R.layout.main);

这一切都可以很好地显示自定义 View 。但我需要做的是将值传递给自定义 View 。因此,我尝试创建自定义 View 类的实例:

DrawView drawView = (DrawView) findViewById(R.id.my_view);

然后,在 DrawView 类中,我创建了一个方法:

public void setUserData(boolean data){
useEraser = data;
}

现在,我的问题是,当我尝试访问 Activity 中的 DrawView 对象的此方法时,我不断收到 NullPointerExeption,如下所示:

boolean value = true;
drawView.setUserData(value);

错误指向“drawView.setUserData(value)”行。我究竟做错了什么?我知道我一定犯了一个简单的错误,但这让我疯狂地试图找到它。任何帮助或建议都会很棒!

编辑:我接受了一个正确工作的答案,但是,我仍然想知道为什么我原来的解决方案不起作用。所以,我发现,尽管我在问题中的顺序正确,但我放置了

DrawView drawView = (DrawView)findViewById(R.id.my_view);

之前

setContentView(R.layout.main);

我知道这是我忽略的一个简单错误!感谢大家的回答,我很感激。我希望这对遇到类似问题的任何人都有用。

最佳答案

如果您想创建新的,请尝试此操作,

在 xml 中放置一个线性布局作为支架

<LinearLayout
android:id="@+id/ln1"
android:layout_width="wrap_content"
android:layout_height="300dp" >

</LinearLayout>

并在下面的 oncreate 中使用

LinearLayout ln = (LinearLayout)findViewById(R.id.ln1);
com.example.mixed.DrawView dw2 = new DrawView(getApplicationContext());
dw2.setUserData(false);
ln.addView(dw2);

如果你把它放在布局 xml 中,它就可以工作,没有问题。

enter image description here

关于java - 从类对象的方法接收空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com