【发布时间】:2020-03-14 10:12:50
【问题描述】:
我有一个带按钮的 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 上,但它仍然崩溃。
这是我第一次涉足选项卡式活动,但我无法使用 setOnClickLIsener。
请引导我完成此操作。谢谢!
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
【问题讨论】:
-
你在 logcat 中的错误是什么?
-
听起来你没有使用合成导入并且你没有用
findViewById初始化calculateButton -
在
onViewCreated覆盖方法中调用setOnClickListener
标签: android android-studio android-fragments kotlin android-tabbed-activity