У меня есть кнопка внутри фрагмента. moneyBtn
найти с помощью val button:Button? = view?.findViewById(R.id.moneyBtn) as Button?
val button:Button? = view?.findViewById(R.id.moneyBtn) as Button?
Я использовал ?
потому что IDE будет вызывать синтаксические ошибки.
Теперь button
использует setOnClickListener:
button?.setOnClickListener { moneyGetten() mEditor.putInt("money", money++) mEditor.commit() moneyGetten() Log.d("BUTTON CLICKED", "!") }
Моя теория: взгляд по какой-то причине не будет найден, поэтому findView ответит null
?
«защищает» OnClickListener.
Вот мой XML:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="de.fosefx.clickergame.Generator"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/plus1label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="135dp" android:text="+1" android:textAppearance="@style/TextAppearance.AppCompat.Display1" /> <Button android:id="@+id/moneyBtn" style="@style/Widget.AppCompat.Button.Colored" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="67dp" android:text="CLICK ME" /> </RelativeLayout> </FrameLayout>
Каким-то образом мнение не было объявлено. Работает сейчас. Никогда не повторите эту ошибку.