Не удается найти класс символов. - PullRequest
0 голосов
/ 25 апреля 2020

Извините, я не могу опубликовать изображение непосредственно в сообщении, потому что там сказано, что у меня должна быть как минимум 10 репутация, чтобы опубликовать его.

Я создал xml в android студии вроде этой Xml

и создали две переменные внутри модели вида, подобные этой

private val _loadingText = MutableLiveData<String>()
val loadingText: LiveData<String> = _loadingText

, затем внедрите привязку данных, как это, в мое диалоговое представление

val dialogView = layoutInflater.inflate(R.layout.dialog_custom_loading, dialog_root)
    val binding = DialogCustomLoadingBinding.inflate(layoutInflater, dialogView as ViewGroup, false)
    binding.viewModel = viewModel
    loading = Dialog(this)
    loading.setContentView(binding.root)

но когда я запускаю код, он показывает ошибку, подобную этой

Ошибка

, и я не знаю, как ее решить .. помогите мне, пожалуйста ..

ОБНОВЛЕНИЕ: когда я запускаю с --stacktrace, я все еще не знаю, что это за ошибка ..

The expression 'viewModelLoadingText.getValue()' cannot be inverted, so it cannot be used in a two-way binding

Details: There is no inverse for method getValue, you must add an @InverseMethod annotation to the method to indicate which method should be used when using it in two-way binding expressions

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Пожалуйста, попробуйте этот код для реализации привязки данных с настраиваемым диалогом. У меня работает нормально

    private fun showAddContactDialog() {
    dialog= Dialog(this)

    dialog.setCancelable(true)
    dialog.setCanceledOnTouchOutside(true)
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
    Objects.requireNonNull(dialog.window)!!.setBackgroundDrawable(
        ColorDrawable(Color.TRANSPARENT)
    )
    dialog.window!!.setGravity(Gravity.CENTER)

    val dialogAddNotesBinding:DialogAddNotesBinding =DataBindingUtil.inflate(LayoutInflater.from(this),R.layout.dialog_add_notes,null,false)
    homeViewModel= ViewModelProviders.of(this).get(HomeViewModel::class.java)
    dialogAddNotesBinding.homeModel=homeViewModel
    homeViewModel.addNewContactListener=this
    dialog.setContentView(dialogAddNotesBinding.root)
    val window = dialog.window
    window!!.setLayout(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.MATCH_PARENT
    )
    dialog.show()
}
0 голосов
/ 25 апреля 2020

Вы используете двустороннюю привязку данных, которая в этом месте неверна.

Измените android:text="@={viewModel.loadingText}" на android:text="@{viewModel.loadingText}"

Дополнительные сведения о проблеме: используется двусторонняя привязка данных когда вы также хотите, чтобы ваши данные были обновлены из пользовательского интерфейса. Регистр может быть EditText, который отправляет свой текст в MutableLiveData и устанавливает его текст из него. Проверьте официальную документацию для более подробной информации.

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