我的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);
}
发布于 2019-07-24 06:42:04
对我来说,你的项目的行为似乎是正常的和合乎逻辑的。当您单击文本视图时,它就像您配置的超链接一样。
如果您希望单击文本而不是项目提供保存操作,我建议您为文本视图调用与该项目相同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);
}
https://stackoverflow.com/questions/57172332
复制相似问题