Kotlin:片段崩溃应用程序上的 setOnClickListener
Kotlin: setOnClickListener on Fragment Crashes app
我有一个带有按钮的 MainActivity,该按钮调用带有 FragmentOneActivity 和 fragment_one.xml 的 tabbedActivity 。我已将我的按钮放在 fragment_one.xml 中并在 FragmentOneActivity 上执行 Toast。这是我的代码:
class Anct3bActivity : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val v : View = inflater.inflate(R.layout.fragment_anct3b, container, false)
calculateNutCountButton.setOnClickListener {
Toast.makeText(
activity,"Success.",
Toast.LENGTH_SHORT).show()
}
return v
}
}
我的应用程序启动正常,但是当单击调用 tabbedActivity 的按钮时,我的应用程序崩溃了。但是,当我从 FragmentOneActivity 中删除 calculateButton.setOnClickListener 时,tabbedActivity 工作正常。
我也试过将 calculateButton.setOnClickListener 放在 tabbedActivity 上,但它仍然崩溃。
这是我第一次尝试选项卡式活动,但我不能让别人使用 setOnClickLIstener。
请引导我完成此操作。谢谢!
Logcat:
在 FragmentOneActivity 上:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
在 tabbedActivity 上
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.demicode.ccdofieldkit/com.a.fr.meActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
在 onViewCreated 和 onCreateView 中设置您的点击侦听器,您在视图可以设置之前调用 onClick 侦听器。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
calculateNutCountButton.setOnClickListener {
Toast.makeText(
activity,"Success.",
Toast.LENGTH_SHORT).show()
}
}
我有一个带有按钮的 MainActivity,该按钮调用带有 FragmentOneActivity 和 fragment_one.xml 的 tabbedActivity 。我已将我的按钮放在 fragment_one.xml 中并在 FragmentOneActivity 上执行 Toast。这是我的代码:
class Anct3bActivity : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val v : View = inflater.inflate(R.layout.fragment_anct3b, container, false)
calculateNutCountButton.setOnClickListener {
Toast.makeText(
activity,"Success.",
Toast.LENGTH_SHORT).show()
}
return v
}
}
我的应用程序启动正常,但是当单击调用 tabbedActivity 的按钮时,我的应用程序崩溃了。但是,当我从 FragmentOneActivity 中删除 calculateButton.setOnClickListener 时,tabbedActivity 工作正常。
我也试过将 calculateButton.setOnClickListener 放在 tabbedActivity 上,但它仍然崩溃。
这是我第一次尝试选项卡式活动,但我不能让别人使用 setOnClickLIstener。
请引导我完成此操作。谢谢!
Logcat:
在 FragmentOneActivity 上:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
在 tabbedActivity 上
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.demicode.ccdofieldkit/com.a.fr.meActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
在 onViewCreated 和 onCreateView 中设置您的点击侦听器,您在视图可以设置之前调用 onClick 侦听器。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
calculateNutCountButton.setOnClickListener {
Toast.makeText(
activity,"Success.",
Toast.LENGTH_SHORT).show()
}
}