Null不能强制转换为非Null类型android.widget.RelativeLayout


override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
val item = menu!!.findItem(R.id.menu_wrong_answer)
val layout = item.actionView as RelativeLayout
txt_wrong_answer = layout.findViewById(R.id.txt_wrong_answer) as TextView
txt_wrong_answer.text = 0.toString()
return true
}

错误:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.abhishek.quiz, PID: 23203
kotlin.TypeCastException: null cannot be cast to non-null type android.widget.RelativeLayout
at com.abhishek.quiz.QuestionActivity.onPrepareOptionsMenu(QuestionActivity.kt:260)
at android.app.Activity.onPreparePanel(Activity.java:3564)
at androidx.fragment.app.FragmentActivity.onPrepareOptionsPanel(FragmentActivity.java:502)
at androidx.fragment.app.FragmentActivity.onPreparePanel(FragmentActivity.java:488)
at androidx.appcompat.view.WindowCallbackWrapper.onPreparePanel(WindowCallbackWrapper.java:99)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.onPreparePanel(AppCompatDelegateImpl.java:2857)
at androidx.appcompat.view.WindowCallbackWrapper.onPreparePanel(WindowCallbackWrapper.java:99)
at androidx.appcompat.app.ToolbarActionBar$ToolbarCallbackWrapper.onPreparePanel(ToolbarActionBar.java:522)
at androidx.appcompat.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:456)
at androidx.appcompat.app.ToolbarActionBar$1.run(ToolbarActionBar.java:56)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

我想问题是你在这里向RelativeLayout抛出null:

val layout = item.actionView as RelativeLayout

请确保item.actionView不等于null。

最新更新