android - Kotlin:片段崩溃应用程序上的 setOnClickListener
问题描述
我有一个带有按钮的 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。
请引导我完成这个。谢谢!
日志猫:
在 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()
}
}
推荐阅读
- angular - 单击 V 形时 Angular Material 突出显示,但单击文本时不突出
- python - 保存内部事务原子时,使用通用关系保存模型会引发异常
- typescript - 为什么我的打字稿不允许定义元组类型
- php - 使用引导程序显示父 ID 下的子菜单
- javascript - 使用 vue.js 将着色器应用于模型查看器
- api - 谁使用 WebMoney 支付系统?您知道 Web Money API 是否提供有关我们在 WM 钱包上的交易历史的信息?
- database - 如何在使用查询功能的同时使用内部连接使用 SQLAlchemy
- typescript - 具有单个未知值的类型
- django - Django 在截止日期前过滤对象
- python-3.x - 如何在 1 行中用空格打印 2 p 个标签的抓取输出