Android - 明明实例化并使用了对象,但是Android Studio提示并没有使用对象

Android初学者,在做一个Android练习,遇到NullPointerException。


11-11 02:38:38.954 10252-10252/? E/AndroidRuntime: Process: com.xuchangju.hellonotes, PID: 10252
11-11 02:38:38.954 10252-10252/? E/AndroidRuntime: java.lang.NullPointerException
11-11 02:38:38.954 10252-10252/? E/AndroidRuntime: at android.widget.AbsListView.obtainView(AbsListView.java:2384)

估计是在AddContent Activity里发生的,于是发现了下面这样的诡异情况
图片描述

对于String val,ImageView c_img和VideoView v_video,我明明在onCreate方法里进行了使用,但是Android Studio依然给我如下提示:
图片描述

实在很诡异,因为同时新建并实例化的Button和EditText都没有这样的情况

求解答,新人感激不尽!

阅读 6.3k
5 个回答

它是提示你,这个东东被引用到的地方,只有在1个方法内(也就是onCreate里),其他方法,外部的类,都没有引用它。
所以,你可以将它变成一个临时变量放在那个方法里。
根据你的情况,Android Studio想让你把这个变量放到onCreate内,不需要作为Activity的成员变量。
一般来说,像这种View的东西,我一般还是作为成员变量持有,而不是临时变量,为了代码的一致性,哪天想调整下View的属性,不需要又声明为成员变量,好麻烦。

重新导入一下R文件试试

新手上路,请多包涵

它是说你可以把它搞成成员变量~或者你在写个方法用一下他,就不会有警告了

新手上路,请多包涵

因为虽然你给他赋值了,但是你没有使用过这个私有变量啊。

题主理解能力有待加强......

提示的意思是这些成员声明了但是没有使用,create里面那几行只是对成员进行了赋值,那不叫使用;button没提示是因为后面访问并调用了setonclicklistener方法,这才叫做使用。
至于textview,应该是在其他地方访问了,截图代码片段有限看不到调用的地方

另外补充一下,题中“新建并实例化”这个说法看着是在蛋疼,那只是通过赋值来持有已经自动实例化的view的引用...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题