Во-первых, этот вопрос не относится к передаче параметра события onClick.
У меня есть класс DateUtil с одним методом, как показано ниже:
public static String formatDate(long date) {
SimpleDateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Calendar c = Calendar.getInstance();
dateFormat.setTimeZone(TimeZone.getDefault());
c.setTimeInMillis(date);
return dateFormat.format(c.getTimeInMillis());
}
Моя модель CommentEntity имеет следующие атрибуты:
private int id;
private int productId;
private String text;
private Date postedAt;
Теперь в одном из макетов я отображаю комментарии.
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable name="comment"
type="com.example.entity.CommentEntity"/>
<variable
name="dateUtil"
type="com.example.util.DateUtil"/>
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:layout_alignParentRight="true"
android:layout_below="@id/item_comment_text"
//This line gives error for data binding
android:text="@{dateUtil.formatDate(comment.postedAt.time)}"/>
</layout>
Я получаю ошибку:
не удается найти метод formatDate (com.example.util.DateUtil) в классе long
Теперь для того же, если я изменю метод formatDate (), так как он по умолчанию займет текущее время, следовательно, удалив передачу параметров в привязке данных, он будет работать отлично.
Так что я делаю что-то не так или это так?Жук?
Пожалуйста, предоставьте решение для проблемы передачи параметра методу в привязке данных.