У меня есть собственный тост, и он работает в java-активности, но не в kotlin, в kotlin-деятельности он выдает следующую ошибку:
kotlin.TypeCastException: null cannot be cast to non-null type android.view.ViewGroup
в этой строке
val layout = inflater.inflate(R.layout.custom_toast,
findViewById<View>(R.id.custom_toast_container) as ViewGroup)
Вот тост:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_container"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="@color/colorPrimary"
>
<ImageView android:src="@drawable/ic_done_black_24dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:tint="@color/colorBackground"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
/>
Как я называю это в Java:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.custom_toast_container));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Already reported");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.BOTTOM, 0, 145);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
Как студия android конвертирует это kotlin:
val inflater = layoutInflater
val layout = inflater.inflate(R.layout.custom_toast,
findViewById<View>(R.id.custom_toast_container) as ViewGroup)
val text = layout.findViewById<View>(R.id.text) as TextView
text.text = "Already reported"
val toast = Toast(context)
toast.setGravity(Gravity.BOTTOM, 0, 145)
toast.duration = Toast.LENGTH_LONG
toast.view = layout
toast.show()
Что я здесь не так делаю?