나는 안드로이드 데이터 바인딩을 사용하여 ViewPager
을 구현했으며 데이터 및 클릭 이벤트와 완벽하게 작동합니다.데이터 바인딩이있는 ViewPager 항목의 위치
난 내가 어댑터 생성자에서 itemClickListener
을 보내고 내 instantiateItem()
@Override
public Object instantiateItem(ViewGroup container, final int position) {
ListItemBinding binding = DataBindingUtil.inflate(mLayoutInflater, R.layout.list_item, container, false);
binding.setHandler(itemClickListener);
binding.getRoot().setTag(position);
container.addView(binding.getRoot());
return binding.getRoot();
}
PagerAdapter
의
public interface ItemClickListener {
public void onItemClick();
}
은 여기 클릭 이벤트에 대한 interface
을 만들었습니다. 여기
public MatchListAdapter(Context context, ItemClickListener itemClickListener) {
mContext = context;
mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.itemClickListener= itemClickListener;
}
내 지금 list_item.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="handler"
type="com.example.ItemClickListener" />
</data>
<LinearLayout
android:id="@+id/root_viewItem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="@{() -> handler.onItemClick()}"
android:orientation="vertical">
//rest views and controls.
</LinearLayout>
</layout>
문제는 내가 클릭 한 항목의 위치를 전달하려는 것입니다이다, 어떻게 XML에서 그 위치를 전달하는 방법? 내가 xml에서 내 메서드를 호출하여 위치를 전달하는 방법은 무엇입니까?
에서 위치 값을 설정합니다 에서 내 견해 xml? –
'DataBinding'은 xml의 뷰 매개 변수를 전달할 필요가 없다는 것을 처리합니다. –
감사합니다, 그것은 작동합니다 :) –