ImageButton OnClickListener不工作

所以我有一个片段中的以下ImageButton:

 

和下面的片段Activity.txt

 class Home : Fragment() { override public fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view: View? = inflater.inflate(R.layout.fragment_home, container, false) val moneyButton: ImageButton = view?.findViewById(R.id.moneyBtn) as ImageButton val result = MyAppApplication() var money = result.money moneyButton.setOnClickListener(View.OnClickListener { Toast.makeText(activity, "TESTING BUTTON CLICK 1", Toast.LENGTH_SHORT).show() }) return view } 

我也尝试使用“正常”Kotline setOnClickListener

 moneyButton.setOnClickListener { Toast.makeText(activity, "TESTING BUTTON CLICK 1", Toast.LENGTH_SHORT).show() } 

应用程序剂量崩溃和剂量冻结,它只是不工作

我也尝试用抛出替换吐司,但是这也不会被优先考虑。 也许你可以find我的错误?

尝试在onActivityCreated初始化您的点击监听器。 它在onCreateView之后被调用,所以它将确保view被充满。

 override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) val moneyButton: ImageButton = activity.findViewById(R.id.moneyBtn) as ImageButton moneyButton.setOnClickListener { Toast.makeText(activity, "TESTING BUTTON CLICK 1", Toast.LENGTH_SHORT).show() } } 

奇怪的是,我只是在我的平台上试过你的代码片段,Toastpopup就好了。试着把第一个Toast的arg改为view.context,看起来像这样:

 Toast.makeText(view.context, "TESTING BUTTON CLICK 1", Toast.LENGTH_SHORT).show() 

让我知道这是否有所作为。

所以我用ImageView替换了ImageButton ,我不知道为什么,但是现在它可以工作。 如果遇到同样的问题,请使用XML:

  

这里是Kotlin代码:

 val moneyPlusBtn: ImageView = view.findViewById(R.id.moneyPlusBtn) as ImageView moneyPlusBtn.setOnClickListener { Toast.makeText(activity, "Money", Toast.LENGTH_SHORT).show() } 

首先,你甚至知道这个代码被执行了吗? 聆听者被设置? 也许尝试使用Log类 (在Java中应该和Kotlin一样)。
也,

 val result = MyAppApplication() var money = result.money 

看起来对我很可疑。 你想创建一个新的应用程序实例吗?