我有一个在“主”XML 文件中声明的自定义视图:
<com.app.DrawView
android:id="@+id/my_view"
android:layout_height="match_parent"
android:layout_width="match_parent" />
然后在我活动的 onCreate 方法中:
setContentView(R.layout.main);
这一切都适用于显示自定义视图。但我需要做的是将值传递给自定义视图。因此,我尝试制作自定义视图类的实例:
DrawView drawView = (DrawView) findViewById(R.id.my_view);
然后,在 DrawView 类中,我创建了一个方法:
public void setUserData(boolean data){
useEraser = data;
}
现在,我的问题是在我的活动中尝试访问 DrawView 对象的此方法时,我不断收到 NullPointerExeption,如下所示:
boolean value = true;
drawView.setUserData(value);
错误指向“drawView.setUserData(value)”行。我究竟做错了什么?我知道我一定犯了一个简单的错误,但它让我疯狂地试图找到它。任何帮助或建议都会很棒!
编辑:我接受了一个正确的答案,但是,我仍然想知道为什么我的原始解决方案不起作用。因此,我发现,尽管我在问题中正确订购了它,但我还是放置了
DrawView drawView = (DrawView)findViewById(R.id.my_view);
前
setContentView(R.layout.main);
我知道这是我忽略的一个简单错误!感谢大家的回答,我很感激。我希望这对任何面临类似问题的人都有用。