2

안드로이드 데이터 바인딩 라이브러리를 사용하여 객체를 스피너 행 레이아웃에 바인딩하고 싶습니다. Post 1Post 2 어떻게 데이터 바인딩을 사용할 수 있으며 데이터 객체의 여러 필드 (한 문자열 만 바인딩하는 방법)를 바인딩하는 방법을 설명하지 못했습니다.데이터 바인딩 라이브러리를 사용하여 맞춤 개체를 회 전자 레이아웃에 바인딩하는 방법은 무엇입니까?

처럼 내 데이터 객체 보이는 : 나는 같은 외모를 할

class Data{ 
    public final String imageUri; 
    public final String title; 
    public final int totalCount; 
} 

레이아웃 :

<!-- horisontal orientation --> 
<LinearLayout> 
    <!-- Icon --> 
    <ImageView/> 

    <!-- Title --> 
    <TextView/> 

    <!-- TotalCount --> 
    <TextView/> 
</LinearLayout> 

하고 나도 몰라 결박 방법

+0

사용자 정의 어댑터해야

Data data; // Data object CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner); binding.setData(data); 

이 작업을 수행해야 할 것입니다 객체와 레이아웃 – Sergey

답변

1

당신은 포장이 ... 귀하의 전체 레이아웃 레이아웃 태그는 데이터 바인딩을 사용합니다.이 방법은 당신의보기에 모델을 할당 할 수 있으므로 레이아웃이어야합니다.

<layout> 
    <data> 
    <variable name="data" type="your.packagename.Data"> 
    </variable> 
    </data> 
    <!-- horisontal orientation --> 
    <LinearLayout> 
    <!-- Icon --> 
    <ImageView 
     android:src="@{data.imageUri}"/> 

    <!-- Title --> 
    <TextView 
     android:text="@{data.title}"/> 

    <!-- TotalCount --> 
    <TextView 
     android:text="@{data.totalCount}"/> 

    </LinearLayout> 
</layout> 

은이 회 전자 & 레이아웃 이름 custom_spinner.xml입니다 보여주기 위해 활동을 사용한다고 가정 할 수 있습니다. 그런 다음 여기에 데이터를 레이아웃으로 설정하는 방법이 있습니다. 스피너 어댑터를 설정 한 후, 여기 당신의 안드로이드 데이터 바인딩 라이브러리 바인딩 사용자 정의 데이터의 또 다른 방법으로이 기능, 재미있는 모양으로 지원하지 않으면

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner); 
    binding.setData(dataList.get(position)); // you should pass dataList as an argument in Custom Adapter constructor 
} 
+0

당신은 설명 할 수 있습니다 : 누가 레이아웃의 _data variable_을 (를) 설정 했습니까? 이 메커니즘을 이해하고 싶습니다. – Sergey

+0

데이터를 레이아웃에 바인딩하는 방법을 알고 있지만 질문은 다음과 같습니다. 스피너 어댑터와 데이터 개체의 바인딩 메커니즘을 사용하는 방법은 무엇입니까? – Sergey

+0

SpinnerAdapter를 공유했습니다 –