Извините за дурацкий вопрос, но просто пытаюсь Котлина немного запутаться.
От MainActivity я пытаюсь вызвать диалог с утилизатором. Часть переработчика работает нормально, потому что я пробовал это без отдельного диалога Но когда я пытаюсь вызвать его в диалоге, происходит сбой с нулевым указателем. Я думаю, он не может распознать представление, но я передаю контекст в качестве примера из стека, но он не работает
Диалог класс
class LanguageDialog(context: Context) : Dialog(context), LanguageAdapter.ItemClickListener{
private var mRussianFlagLink = "https://cdn3.iconfinder.com/data/icons/142-mini-country-flags-16x16px/32/flag-russia2x.png"
private var mEnglishFlagLink = "https://cdn3.iconfinder.com/data/icons/142-mini-country-flags-16x16px/32/flag-united-kingdom2x.png"
private lateinit var mLanguageAdapter : LanguageAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.dialog_languages)
val mLanguageList : MutableList<Language> = mutableListOf(Language("Russian", mRussianFlagLink), Language("English", mEnglishFlagLink))
val mRecyclerView = findViewById<RecyclerView>(R.id.recycle_languages)
mRecyclerView.layoutManager = LinearLayoutManager(context)
mLanguageAdapter = LanguageAdapter(mLanguageList, context)
mLanguageAdapter.setClickListener(this)
mRecyclerView.adapter = mLanguageAdapter
}
override fun onItemClick(view: View, position: Int) {
Log.d("Test", "CLICK")
}
}
Сбой здесь
mRecyclerView.layoutManager = LinearLayoutManager(context)
Звонок с MainActivity
private fun callLanguageDialog() {
val mDialog = LanguageDialog(this)
mDialog.show()
Журналы ошибок
FATAL EXCEPTION: main
Process: com.example.a3802256.zzzz, PID: 9833
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.a3802256.zzzz/com.example.a3802256.zzzz.main.MainActivity}: java.lang.IllegalStateException: mRecyclerView must not be null
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.IllegalStateException: mRecyclerView must not be null
at com.example.a3802256.zzzz.LanguageDialog.onCreate(LanguageDialog.kt:26)
at android.app.Dialog.dispatchOnCreate(Dialog.java:395)
at android.app.Dialog.show(Dialog.java:294)
at com.example.a3802256.zzzz.main.MainActivity.callLanguageDialog(MainActivity.kt:20)
at com.example.a3802256.zzzz.main.MainActivity.onCreate(MainActivity.kt:15)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)