Получить представление в объекте, используя kotlin - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь получить ссылку на EditText в объекте. Импорт import kotlinx.android.synthetic.main.dialog_save_recording.dialog_save_recording_edittext_name не работает в объекте.

Мой код:

object Dialog {
    fun createDialog(context: Context, layoutId: Int? = null) {
        val builder = AlertDialog.Builder(context)
        if (layoutId != null) {
            builder.setView(layoutId)
            builder.setPositiveButton(context.getString(R.string.dialog_save_button_text)) { _, _ ->
                //get the input of the editText here
            }
  ... //not important for my question

Макет, на который я хочу сослаться:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:padding="@dimen/dialog_padding"
    android:layout_margin="@dimen/dialog_margin">

    <TextView
        android:id="@+id/dialog_save_recording_textview_name"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/dialog_save_recording_name"
        android:textSize="@dimen/text_size_normal" />

    <EditText
        android:id="@+id/dialog_save_recording_edittext_name"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:hint="@string/dialog_save_recording_name_hint"
        android:importantForAutofill="no"
        android:inputType="text"/>
    </LinearLayout>

Я пробовал с findViewById или работа с layoutId, но пока безуспешно. Я ищу решение без наследования объекта от Activity ().

Кто-нибудь знает, как это сделать?

1 Ответ

1 голос
/ 28 января 2020

Сначала необходимо создать диалоговое окно:

val dialog = builder.build()

Затем вы можете использовать:

val editText = dialog.requireViewById(R.id.dialog_save_recording_edittext_name)

После применения изменений Не забудьте отобразить диалоговое окно:

dialog.show()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...