Как передать нулевой аргумент в привязке данных Android - PullRequest
0 голосов
/ 13 ноября 2018

Почему нельзя передать нулевое значение? как это можно исправить? Я не могу найти подсказки от Документа .

ERROR

**** / ошибка привязки данных **** msg: не удается найти метод onClick (java.lang.Object, java.lang.Object) в файле класса kr.co.app.MyActivity.MyListener: / Users / jujaeho / projects / app / src / main / res / layout / activity_my.xml loc: 24: 71 - 24: 106 **** \ ошибка привязки данных ****

CODE

class MyActivity {
  interface MyListener {
    fun onClick(abc: ABC?, count: Int?)
  }
}

<layout>
  <data>
  <variable
    name="handler"
    type="kr.co.app.MyActivity.MyListener" />
  </data>
  <View
    ...
    android:onClick="@{() -> handler.onClick(null, null)}" />
</layout>

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Я только что столкнулся с этой проблемой сегодня, и в основном я приводил параметры null к типам, ожидаемым в параметрах метода. В вашем случае это должно быть что-то вроде:

<layout>
  <data>
  <import type="ABC" /> // just an illustration, specify the full package
  <variable
    name="handler"
    type="kr.co.app.MyActivity.MyListener" />
  </data>
  <View
    ...
    android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
</layout>

Я не уверен насчет кастинга int, но вы можете попробовать его или использовать класс-оболочку Integer для кастинга.

0 голосов
/ 16 ноября 2018

если вы намереваетесь передать значение null, почему вы не можете присвоить значение по умолчанию для вашего метода onClick

class MyActivity {
  interface MyListener {
    fun onClick(abc: ABC?=null, count: Int?=null)
  }
}

вы ничего не можете передать, если хотите передать значение null

...