【发布时间】:2021-12-31 19:07:03
【问题描述】:
当没有可用的互联网时,我正在尝试显示 bottomSheetDialog。我使用的代码是
private fun setupBottomSheetDialog() {
bottomSheetDialog =
object : BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme) {
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setOnKeyListener { _: DialogInterface?, keyCode: Int, event: KeyEvent ->
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
// Back key is pressed
bottomSheetDialog.dismiss() // Optional
requireActivity().moveTaskToBack(true) //exit the app when press back
requireActivity().finish()
return@setOnKeyListener true
}
true
}
}
}
bottomSheetDialog.setContentView(R.layout.bottomsheet_no_internet)
bottomSheetDialog.setCancelable(false)
}
@SuppressLint("NotifyDataSetChanged")
private fun showBottomSheetDialog() {
bottomSheetDialog = BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme)
bottomSheetDialog.setContentView(R.layout.bottomsheet_no_internet)
if (CheckNetwork.isInternetAvailable(requireActivity())) {
bottomSheetDialog.dismiss()
} else {
setupBottomSheetDialog()
}
/* Try Again Button */
val buttonNoInternet = bottomSheetDialog.findViewById<Button>(R.id.buttonAgain)
buttonNoInternet?.setOnClickListener {
if (CheckNetwork.isInternetAvailable(requireActivity())) {
adapter.notifyDataSetChanged()
bottomSheetDialog.dismiss()
} else {
bottomSheetDialog.dismiss()
adapter.notifyDataSetChanged()
bottomSheetDialog.show()
}
}
}
override fun onResume() {
super.onResume()
if (CheckNetwork.isInternetAvailable(requireActivity())) {
bottomSheetDialog.dismiss()
} else {
bottomSheetDialog.show()
}
}
我遇到的问题在于 onResume() mehoud。我得到的错误信息是
原因:java.lang.NullPointerException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkNotNullParameter,参数savedInstanceState 在 com.moataz.afternoonhadeeth.ui.view.fragment.HomeFragment$setupBottomSheetDialog$1.onCreate(未知来源:2) 在 android.app.Dialog.dispatchOnCreate(Dialog.java:616) 在 android.app.Dialog.show(Dialog.java:460) 在 com.moataz.afternoonhadeeth.ui.view.fragment.HomeFragment.onResume(HomeFragment.kt:143)
在错误消息的顶部
java.lang.RuntimeException: Unable to resume activity {com.moataz.afternoonhadeeth/com.moataz.afternoonhadeeth.ui.view.activity.MainActivity}: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter savedInstanceState
注意:代码是否可以在 Java 中正常工作。但是当我将它与 kotlin 一起使用时,它会给我错误。任何想法如何解决这个问题?
【问题讨论】: