所以我在片段中有以下ImageButton:
<ImageButton
android:id="@+id/moneyBtn"
style="@android:style/Widget.Holo.Light.ImageButton"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/monkey"
android:background="@null"/>
以下fragmentActivity.kt
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()
}
App剂量崩溃和剂量冻结,它只是不起作用
我也尝试用掷骰子代替Toast,但是也不会被夸大。 也许你可以找到我的错误?
答案 0 :(得分:1)
尝试在ng-repeat()
中初始化您的点击监听器。它在onActivityCreated
之后调用,以确保onCreateView
充气。
view
答案 1 :(得分:1)
有相同的问题,可以通过以下代码来完成:
在您的var PieData = [
{
value : parseInt(<?php echo $variable; ?>),
color : '#00c0ef',
highlight: '#00c0ef',
label : 'Blue'
},
中:
Fragment
原因是override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val rootView = inflater.inflate(R.layout.fragment_home, container, false)
val imgViewButton = rootView.findViewById<ImageButton>(R.id.moneyBtn) // Use the current view
imgViewButton?.setOnClickListener() {
Toast.makeText(activity, "Clicked!", Toast.LENGTH_SHORT).show()
}
return rootView
}
的使用方式不正确。但是,使用这些代码,它会设置当前的View
,然后返回完美的视图。
答案 2 :(得分:0)
首先,您是否知道此代码已执行?那个听众被设定了?也许尝试使用 Log class (Kotlin和Java一样)。
另外,
val result = MyAppApplication()
var money = result.money
对我来说很可疑。您是否尝试创建新的Application实例?
答案 3 :(得分:0)
奇怪的是,我刚刚在我的平台上尝试了你的代码片段,并且Toast弹出正常...尝试将toast的第一个arg更改为view.context,所以它看起来像:
Toast.makeText(view.context, "TESTING BUTTON CLICK 1", Toast.LENGTH_SHORT).show()
如果这有所不同,请告诉我。