2017-02-10 2 views
0

를이 내가이 오류를 얻을 내 목록보기안드로이드 데이터 바인딩 : 속성 응용 프로그램에 대한 세터 찾을 수 없습니다 : 목록

<ListView 
    android:id="@+id/productListView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:list="@{page.results}"/> 

입니다 : 이것은 내 BindingAdapter입니다

java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:Cannot find the setter for attribute 'app:list' with parameter type java.util.List on android.widget.ListView. loc:33:20 - 33:31 ****\ data binding error ****

@BindingAdapter({"bind:list"}) 
public static void bindList(Context context, ListView view, ObservableArrayList<Result> list) { 
    ProductsAdapter arrayAdapter = new ProductsAdapter(context,list); 
    view.setAdapter(arrayAdapter); 
} 

수 누군가이 문제를 도와주세요.

답변

1

바인드 네임 스페이스를 나가야합니다. 오직 @BindingAdapter("list") 만 있으면 충분합니다.

은 또한 당신은 Context 매개 변수가 나는 당신의 제안을 시도 List<Result> 대신

@BindingAdapter("list") 
public static void bindList(ListView view, List<Result> list) { 
    Context context = view.getContext(); 
    view.setAdapter(new ProductsAdapter(context, list)); 
} 
+0

ObservableArrayList<Result>의 사용해야 필요가 없습니다. 여전히 같은 오류가 발생합니다. – Nikhil

+0

아니요, 여전히 작동하지 않습니다. – Nikhil

+1

ObservableArrayList 대신'List'를 사용해야 할 수도 있습니다. – tynn