gpt4 book ai didi

java - 单击 OnBindViewholder recyclerview android 中的监听器

转载 作者:行者123 更新时间:2023-11-30 10:43:38 35 4
gpt4 key购买 nike

在下面的代码中每次都会调用'setlisteners'方法,position的值不应该改变吗?只有一种方法'setlisteners'在其中传递参数位置,但是在日志中,我看到每当我的按钮上发生点击事件时,它都会显示正确的位置。位置不应该覆盖自己并显示不正确的位置,因为点击事件随时可能发生,到那个时候位置值会改变吗?

let's suppose 5 views have been binded and i click on the first itemview,then should'nt it show me the last position held by the last binded itemview?

 @Override
public void onBindViewHolder(ViewHolder holder, int position) {


setListeners(holder,position);


}

private void setListeners(ViewHolder holder, final int position) {
holder.updownarrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("ddfg",""+position);

}
});
holder.leftlayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

}
});
}

position 将保留在 onBindViewHolder 中绑定(bind)的最后一个 holder 的位置,因为当我单击它时我的 View 不会调用 onBindViewHolder,所以 position 不应该保留最后一个绑定(bind)的位置,并且只要任何 View 获得时只显示那个位置点击了吗?

最佳答案

onBindViewHolder 中的位置与您的适配器/数据集中的位置相同。您的 Click Listener 被设置为 position 绑定(bind)时在您的数据集中表示的单个 ViewHolder。即使在绑定(bind)所有 View 之后才调用点击事件,每个函数实例都已设置为使用每个 View 设置的相应位置。

如果每个 View 共享同一个 Click Listener 实例,那么您将只能获得最后一个位置。但是,每个 View 都有自己的点击监听器实例。

关于java - 单击 OnBindViewholder recyclerview android 中的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37698963/

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