Как действие может получить доступ к экземпляру представления после того, как оно было установлено с помощью SetContentView? Мне это нужно, потому что в упражнении используется настраиваемое представление, включающее логику, и оно требуется для отправки событий в занятие через настраиваемый прослушиватель событий, который нужно установить в представлении.
Я программируюс андроид студией в котлине. Раньше у меня была вся логика управления пользовательским интерфейсом в действии, поэтому я был в порядке, но я настраиваю некоторый код пользовательского интерфейса в пользовательском представлении, чтобы повторно использовать его в нескольких действиях.
Вот инициализация действия
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.custom_view)
// Here need to access the view instance
*xxxxxxx*.setCustomViewListener(new CustomView.MyCustomViewListener() {
@Override
public void onCancelled() {
// Code to handle cancellation from the view controls
}
});)
}
}
Вот макет представления
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:id="@+id/button_do"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Do" />
<com.kotlin.app.views.CustomView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_custom" />
</FrameLayout>
Вот класс пользовательского представления CustomView.kt
class CustomView : FrameLayout, View.OnClickListener {
constructor(context: Context) : super(context)
init {
}
interface CustomViewListener {
fun onCancelled()
}
private var listener: CustomViewListener? = null
fun setCustomViewListener(listener: CustomerViewListener) {
this.listener = listener
}
Любая идея, пожалуйста?