为了账号安全,请及时绑定邮箱和手机立即绑定

单击行时无法转到新活动

单击行时无法转到新活动

慕勒3428872 2021-09-12 16:50:55
我一直试图在单击 TextView 时显示一个选项菜单。我已经能够做到这一点。但是现在当我点击该行时,我无法进入下一个活动。RecyclerTouchListener.javapublic class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {    private ClickListener clicklistener;    private GestureDetector gestureDetector;    public RecyclerTouchListener(Context context, final RecyclerView recycleView, final ClickListener clicklistener) {        this.clicklistener = clicklistener;        gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {            @Override            public boolean onSingleTapUp(MotionEvent e) {                return true;            }            @Override            public void onLongPress(MotionEvent e) {                View child = recycleView.findChildViewUnder(e.getX(), e.getY());                if (child != null && clicklistener != null) {                    clicklistener.onLongClick(child, recycleView.getChildAdapterPosition(child));                }            }        });    }    @Override    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {        View child = rv.findChildViewUnder(e.getX(), e.getY());        if (child != null && clicklistener != null && gestureDetector.onTouchEvent(e)) {            clicklistener.onClick(child, rv.getChildAdapterPosition(child));        }        return false;    }    @Override    public void onTouchEvent(RecyclerView rv, MotionEvent e) {    }    @Override    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {    }    public interface ClickListener {        void onClick(View view, int position);        void onRowClick(View view, int position);        void onLongClick(View view, int position);    }}我在本网站上搜索了许多不同的文章,并尝试了成员发布的几种不同的解决方案,但我仍然无法进行新的活动。你如何创建一个 onClickListener() 来监听主行上的点击,以及一个 TextView。任何帮助将不胜感激。
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

解决方案:

删除recyclerview.onTouchListener..... 我们不再需要它了。

holder对象上的单击侦听器比这更好。请看下面的例子:

类似于holder.bowlerLeagueId.setText(bowler.getLeagueId());你也可以写:

holder.bowlerLeagueId.setOnClickListener(....) {
     ........ (Write here)}

然后,在您的 (Write here) 内容中,编写代码以导航到下一个活动。

同样,您可以为任何 holder.viewid.setOnClick 等执行此操作。

希望能帮助到你。


查看完整回答
反对 回复 2021-09-12
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

我可以知道您是否在清单文件中注册了 BowlerActivity?单击视图后,请附上日志。

我看到您初始化了本地侦听器并实现了 onLongClick 和 onTouch,但是您没有设置 OnClick 事件并传输到自定义侦听器回调作为 OnRowClick 的视图


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信