ImageButton OnClickListener не работает

Поэтому у меня есть следующий 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"/> 

И следующий фрагментActivity.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() } 

Крушение приложения дозатора и дозатор замерзают, он просто не работает

Я также попытался заменить Тост броском, но это тоже не будет отменено. Может быть, вы можете найти мою ошибку?

Попробуйте инициализировать прослушиватель onActivityCreated в onActivityCreated . Он onCreateView после onCreateView поэтому он будет обеспечивать onCreateView представления.

 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() } } 

Странно, я просто попробовал свои фрагменты кода на своей платформе, и Toast всплывает просто отлично … Попробуйте изменить первый аргумент Toast на view.context, чтобы он выглядел примерно так:

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

Дайте мне знать, если это имеет значение.

Поэтому я просто заменил ImageButton на ImageView и я не знаю почему, но теперь он работает. Вот XML, если вы столкнулись с той же проблемой:

 <ImageView android:id="@+id/moneyPlusBtn" android:layout_width="240dp" android:layout_height="240dp" android:layout_below="@+id/homeText" android:layout_centerHorizontal="true" android:src="@drawable/monkey" /> 

и вот код Котлина:

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

Прежде всего, знаете ли вы, что этот код выполнен? Что слушатель установлен? Возможно, попробуйте использовать класс журнала (он должен быть таким же в Kotlin, как и на Java).
Также,

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

выглядит подозрительно для меня. Вы пытаетесь создать новый экземпляр приложения?

Intereting Posts
Внутренние занятия Наследование в Котлине «Lateinit» или «by lazy» при определении глобального android.widget var / val Невозможно предоставить квалифицированную строку с помощью Dagger2 Как использовать объект Котлина путем отражения Программно раздутый макет с расширениями Android Kotlin Нажмите элемент RecyclerView в ViewHolder Kotlin с трудом подводит итог к предполагаемому (на месте) параметру Java / Android / Kotlin: отражение на частном поле и вызов общедоступных методов на нем Свойства конструктора Котлина и вызов различных конструкторов суперкласса Dagger2 вводит презентатора в ошибку активности Kotlin Как выводить / печатать значение в TextView Конвертировать проект Android для использования Gradle Script Kotlin BottomNavigationView ссылку на ViewPager, когда я установил Listener в bottomNavigationView, мне нужно дважды щелкнуть, чтобы выполнить то, что я делаю Kotlin gradle.build ZipException из-за дубликатов Ошибка: выполнение выполнено для задачи ': app: compileDebugKotlin'. > Ошибка компиляции. Подробнее см. Журнал