我的RecyclerView项中有一个TextView,我使用下面的适配器中的代码使TextView中的链接可单击:
public void bindNote(Note note) {
str = note.getNoteText();
strHTML = str.replaceAll("\n","<br>");
noteTextView.setText(Html.fromHtml(strHTML));
noteTextView.setMovementMethod(LinkMovementMethod.getInstance());
}
问题是执行此操作之后,现在单击该项目将无法正常工作,并且仅当我在TextView之外单击时才单击该项目。如果我单击文本,则什么也不会发生。
是因为我使链接可点击而引起的问题吗?还是我没有正确处理点击?
这是ViewHolder的一部分:
public class NoteViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,
View.OnLongClickListener, PopupMenu.OnMenuItemClickListener {
TextView noteTextView;
TextView dateTextView;
public NoteViewHolder(@NonNull View itemView) {
super(itemView);
noteTextView = itemView.findViewById(R.id.tv_itemNoteTele_noteText);
dateTextView = itemView.findViewById(R.id.tv_itemNoteTele_date);
itemView.setOnLongClickListener(this);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
onClickListener.itemClick(v, getAdapterPosition());
}
}
public interface AdapterClickListener {
void itemClick(View itemView, int position);
}
答案 0 :(得分:0)
对我来说,您商品的行为似乎是正常且合乎逻辑的。当您单击文本视图时,它会像您配置的那样充当超链接。
如果您希望通过单击文本来执行保存操作而不是该项目,建议您为该项目的文本视图调用相同的View.OnClickListener
public class NoteViewHolder extends RecyclerView.ViewHolder implements
View.OnClickListener, View.OnLongClickListener, PopupMenu.OnMenuItemClickListener {
TextView noteTextView;
TextView dateTextView;
public NoteViewHolder(@NonNull View itemView) {
super(itemView);
noteTextView = itemView.findViewById(R.id.tv_itemNoteTele_noteText);
dateTextView = itemView.findViewById(R.id.tv_itemNoteTele_date);
itemView.setOnLongClickListener(this);
itemView.setOnClickListener(this);
noteTextView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
onClickListener.itemClick(v, getAdapterPosition());
}
}
public interface AdapterClickListener {
void itemClick(View itemView, int position);
}