gpt4 book ai didi

android - 从 RecyclerView 中删除项目时如何重置文本删除线

转载 作者:行者123 更新时间:2023-11-30 05:09:50 25 4
gpt4 key购买 nike

即使从列表中删除该项目,stikethough 和文本颜色也不会更新(重置)。因此,当我添加新项目时,文本和文本颜色出现意想不到的错误。我试图通过在 onBindHolder 中添加“paint.setFlag(holder.itemName.getPaintFlags() ^ Paint.STRIKE_THRU_TEXT_FLAG) 来解决这个问题,但它没有用......

我该如何解决这个问题? https://github.com/kitomiyu/practice-hospitalList/issues/5

    @Override
public void onBindViewHolder(@NonNull TaskItemViewHolder holder, int position) {
if (mItems != null) {
TodoItem current = mItems.get(position);
holder.itemName.setText(current.getText());
holder.itemCheckBox.setChecked(false);
}
}

// provide a reference to the views for each data
class TaskItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private final TextView itemName;
private final CheckBox itemCheckBox;

TaskItemViewHolder(View itemView) {
super(itemView);
itemName = itemView.findViewById(R.id.taskName);
itemCheckBox = itemView.findViewById(R.id.taskCheck);

itemCheckBox.setOnClickListener(this);
}

@Override
public void onClick(View v) {
int adapterPosition = getAdapterPosition();
TodoItem current = mItems.get(adapterPosition);
TextPaint paint = itemName.getPaint();

if (itemCheckBox.isChecked()) {
// change color
itemName.setTextColor(Color.LTGRAY);
// add strikethrough
paint.setFlags(itemName.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
paint.setAntiAlias(true);

// when item is checked, add the item as delete target
mDeleteItems.add(current);
mClickListener.onItemClick(mDeleteItems);
} else {
mDeleteItems.remove(current);
itemName.setTextColor(mContext.getResources().getColor(R.color.colorPrimary));
paint.setFlags(itemName.getPaintFlags() ^ Paint.STRIKE_THRU_TEXT_FLAG);
paint.setAntiAlias(false);
}
}
}

最佳答案

您在 if else 的两种情况下都设置了删除线。

关于android - 从 RecyclerView 中删除项目时如何重置文本删除线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53924255/

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