首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击RecyclerView item单击TextView inside item

单击RecyclerView item单击TextView inside item
EN

Stack Overflow用户
提问于 2019-07-24 05:16:59
回答 1查看 73关注 0票数 0

我的RecyclerView项目中有一个TextView,我在适配器中使用以下代码使TextView中的链接可点击:

代码语言:javascript
运行
复制
public void bindNote(Note note) {
    str = note.getNoteText();
    strHTML = str.replaceAll("\n","<br>");
    noteTextView.setText(Html.fromHtml(strHTML));
    noteTextView.setMovementMethod(LinkMovementMethod.getInstance()); 
} 

问题是在这样做之后,现在点击项目不能正常工作,只有当我在TextView之外点击的时候才会点击项目。如果我单击该文本,则不会发生任何反应。

这个问题是不是因为我让链接可点击的方式造成的?或者我没有正确地处理点击?

这是ViewHolder的一部分:

代码语言:javascript
运行
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2019-07-24 06:42:04

对我来说,你的项目的行为似乎是正常的和合乎逻辑的。当您单击文本视图时,它就像您配置的超链接一样。

如果您希望单击文本而不是项目提供保存操作,我建议您为文本视图调用与该项目相同View.OnClickListener

代码语言:javascript
运行
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57172332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档