當我遇到問題時,我正在嘗試使用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 –
謝謝。這有助於.. –