当我遇到问题时,我正在尝试kotlin及其在android中的强大新功能.
在kotlin中有一个很酷的东西,你可以直接使用xml中的id而不使用findViewById().但是当我将它应用到回收器视图并尝试使其工作时,我得到一个空指针异常.我检查了xml,我确实有一个带有我使用的ID的回收器视图.你能帮助我弄清楚为什么我在这里得到空指针异常吗?
这是我引用我的Recycler视图并在其上应用方法的代码.
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)
kotlin代码存在于片段中的onCreateView方法中.
伙计们,请不要说这是关于空指针的重复问题.我知道什么是空指针.我只是无法弄清楚我的代码出错了或者我是否误解了kotlin中的某些内容..
解决方法:
如果你在onCreateView中调用你的视图将它移动到onViewCreated,
因为在onCreateView中调用它们时未初始化视图