当我遇到问题时,我正在尝试使用kotlin及其令人敬畏的新功能。 在kotlin中有这样一件很酷的事情,你可以直接使用xml中的id而不使用findViewById()
。但是,当我将它应用于回收视图并尝试使其工作时,我得到一个空指针异常。我检查了xml,我确实有一个带有我使用的ID的回收站视图。你们能帮我弄清楚为什么我在这里得到一个空指针异常吗?使用Kotlin在片段中引用RecyclerView时出现空指针错误
这里是我参考我的回收商视图和应用方法的代码。
with(rv_my_device){
setHasFixedSize(true)
layoutManager = LinearLayoutManager(activity)
listAdapter = MyDeviceAdapter(activity,titles,values)
adapter = listAdapter
}
我正的误差是
FATAL EXCEPTION: main
Process: com.example.sriram.mydevice, PID: 24771
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sriram.mydevice/com.example.sriram.mydevice.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724
at android.app.ActivityThread.-wrap12(ActivityThread.java
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
的科特林代码存在于一个片段的onCreateView方法。
和家伙,请不要downvote说这是一个关于空指针的重复问题。我知道什么是空指针。我只是无法弄清楚我的代码出错了,或者我误解了kotlin中的某些东西。
这是有效的。但是,你能解释为什么它可以和java一起使用,但不能和kotlin一起使用?我的意思是我在onCreateView方法中拥有整个回收视图代码,并且它在java中正常工作,但不能与kotlin一起工作。 –
,因为当使用kotlin扩展时,它会调用getView()。findViewById(R.id。rv_my_device),并且在onCreateView中,getView()将返回null –
谢谢。这有助于.. –