사용자 정의 필드에 데이터 바인딩을 사용하고 있습니다. 이 사용자 지정 데이터 바인딩 어댑터를 설정했습니다.데이터 바인딩 오류 : 이전 값 다음에 새로운 값이 와야합니다. 매개 변수 2는 매개 변수 3과 동일한 유형이어야합니다.
내 바인딩 어댑터는 다음과 같습니다
@BindingAdapter({"created_by,created_at"})
public static void setDetailCreated(TextView textView, String createdBy, long createdAt) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(createdAt);
SimpleDateFormat dateFormat = new SimpleDateFormat("h:mm a, dd MMM yyyy");
String format = textView.getContext().getString(R.string.details_created, createdBy,
dateFormat.format(cal.getTime()));
textView.setText(format);
}
그리고 내 레이아웃 파일에
나는이 :Error:Execution failed for task ':app:compileDebugJavaWithJavac'. java.lang.RuntimeException: failure, see logs for details. BindingAdapter setDetailCreated(android.widget.TextView,java.lang.String,long): old values should be followed by new values. Parameter 2 must be the same type as parameter 3.
:
...
<data>
<import type="java.util.Map" />
<import type="com.example.beans.Friend" />
<variable
name="user"
type="com.example.beans.User" />
<variable
name="friends"
type="Map<String, Friend>" />
</data>
....
....
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:created_by="@{friends[user.createdBy].name}"
app:created_at="@{user.createdAt}" />
을하지만 아래의 오류가 발생하고 실행하는 동안 나는 여기서 무엇이 잘못 될지 이해하지 못한다.
오 ... 당신은 저를 저장! 바보 같은 실수! 잘 잡으세요! – kirtan403