您好我正在调用以下函数来设置我在 onBindview()的Recycler视图适配器方法中的数据。
我正在调用方法如下:
@Override
public void onBindViewHolder(RecyclerViewHolders holder, int position) {
holder.setData(position);
}
我的setData()方法如下:
public class RecyclerViewHolders extends RecyclerView.ViewHolder {
public TextView txt_HappyHour;
public RecyclerViewHolders(View itemView) {
super(itemView);
txt_HappyHour = (TextView) itemView.findViewById(R.id.txt_HappyHour);
}
public void setData(final int position) {
final MyModel.MyData modelMyList = itemList.get(position);
if (modelMyList.happy_hours.equals("1")) {
txt_HappyHour.setVisibility(View.VISIBLE);
} else {
txt_HappyHour.setVisibility(View.GONE);
}
}
}
我根据上述setData()函数中的条件设置TextView txt_HappyHour 的可见性。现在,当我运行应用程序时,我在滚动我的RecyclerView时可以看到Textview多次或多次。
我听说我可以使用 setTag()和 getTag()方法来解决这个滚动问题。但是,我很困惑,在我的情况下,我如何使用或应用它?
需要帮助。
答案 0 :(得分:0)
你能看看这个答案吗?
if (null == txt_HappyHour.getTag) {
txt_HappyHour.setTag(modelMyList.happy_hours);
}
String Value = (String) txt_HappyHour.getTag();
if (Value.equals("1")) {
txt_HappyHour.setVisibility(View.VISIBLE);
} else {
txt_HappyHour.setVisibility(View.INVISIBLE);
}
答案 1 :(得分:0)
试试这个
在你的onBindViewHolder中使用像这样的setTag
txt_HappyHour.setTag(position);
在你的setData方法
中if(itemView.get((Integer) txt_HappyHour.getTag()).happy_hours.equals("1"))
{
txt_HappyHour.setVisibility(View.VISIBLE);
} else {
txt_HappyHour.setVisibility(View.GONE);
}