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

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都没有这样的情况

求解答,新人感激不尽!


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


重新导入一下R文件试试


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


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

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

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


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

【热门文章】
【热门文章】