【发布时间】:2015-05-08 13:15:52
【问题描述】:
我的 RecyclerView 有一个小问题。我的适配器用一些 TextView、一个 ImageView 和一些按钮很好地填充了它。当其中一个按钮上有 OnClick-Event 时,它会修改 TextView - 到目前为止一切都很好,但是当我进一步滚动一些项目时,另一个 RecyclerView-item 也被修改并具有最初修改的值。
我已经尝试将 setOnClickListener 移动到我的 ViewHolder 中,但结果是一样的。
也许你能帮助我。
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
// some vars .... and a constructor
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(mContext).inflate(R.layout.recyclerview_item, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i) {
// ...
viewHolder.myTextView.setText("clear");
viewHolder.myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewHolder.myTextView.setText("modified");
}
});
// ...
}
@Override
public int getItemCount() {
return mProducts.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView productMultibuy;
private Button productAddToShoppingList;
// ...
public ViewHolder(View itemView) {
super(itemView);
myTextView = (TextView) itemView.findViewById(R.id.my_textview);
myButton = (Button) itemView.findViewById(R.id.my_button);
// ...
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
}
}
}
【问题讨论】:
标签: android adapter onclicklistener android-recyclerview android-viewholder