gpt4 book ai didi

android - 具有数据绑定(bind)的 ViewPager 项的位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:12:21 25 4
gpt4 key购买 nike

我已经使用 android 数据绑定(bind)实现了 ViewPager,它可以完美地处理数据和点击事件。

我已经为点击事件创建了接口(interface)

public interface ItemClickListener {
public void onItemClick();
}

这是我的 instantiateItem()PagerAdapter

@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();
}

我在适配器构造函数中发送 itemClickListener

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 调用我的方法时如何传递位置?

最佳答案

可以在界面中传递 View

 public interface ItemClickListener {
public void onItemClick(View view);
}

比在你已经在做的标签中设置位置

binding.getRoot().setTag(position);

然后你可以像这样从那个 View 参数中获得位置

@Override
public void onItemClick(View view){
int position=(int)view.getTag();
}

更多详细信息可以引用http://developers-club.com/posts/267735/

关于android - 具有数据绑定(bind)的 ViewPager 项的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39463100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com