Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收器视图附加项单击侦听器多次启动活动_Android_Android Recyclerview - Fatal编程技术网

Android 回收器视图附加项单击侦听器多次启动活动

Android 回收器视图附加项单击侦听器多次启动活动,android,android-recyclerview,Android,Android Recyclerview,addOnItemTouchListener多次启动活动我应该做什么。我厌倦了添加标志,完成一次点击的活动 使用OnClickListener而不是addOnItemTouchListener RecyclerView.OnItemTouchListener用于在列表滚动时检测对项目的触摸,而不是常规或直接触摸OnItemTouchListener的功能与普通OnItemClickListener稍有不同。使用OnItemTouchListener,可以允许应用程序从视图层次截取触摸事件。这基本

addOnItemTouchListener多次启动活动我应该做什么。我厌倦了添加标志,完成一次点击的活动

使用OnClickListener而不是addOnItemTouchListener


RecyclerView.OnItemTouchListener用于在列表滚动时检测对项目的触摸,而不是常规或直接触摸

OnItemTouchListener的功能与普通OnItemClickListener稍有不同。使用OnItemTouchListener,可以允许应用程序从视图层次截取触摸事件。这基本上意味着,您可以实现各种形式的手势操作,比如直接滑动到RecyclerView的视图中

您应该在什么时候使用它?

当您 需要确定当用户单击您数据库中的视图时会发生什么情况 回收视图。这可能是删除某些内容或启动新的 活动。OnItemTouchListener通常用于创建手势 与RecyclerView中某些视图的交互性


尝试使用界面模式将onClickListener从ViewHolder提供到UI(活动/片段),然后启动活动请将onClickListener添加到您的ViewHolder中的视图中它会工作

以下是一个示例

公共类CustomViewHolder扩展了RecyclerView.ViewHolder{
按钮添加;
公共CustomViewHolder(查看项目视图){
超级(项目视图);
add=itemView.findviewbyd(R.id.add);
add.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
}
});
}

}
为什么不使用Onclick listener

对我来说什么都不管用,所以我决定使用列表视图和
listview.onItemClickListner()
这对我有用。谢谢大家


为什么不在视图持有者类中使用自定义项目选定的侦听器或适配器类中的onclick侦听器?使用持有者类中的click侦听器,设计不好b在适配器和活动之间使用接口onclick listener在布局单击时触发他希望在项目单击时使用它
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    try {
        Timeline timeline = dataSnapshot.getValue(Timeline.class);
        timelineArrayList.add(timeline);
        adapter= new TimelineAdapter(timelineArrayList);
        timelineRecyclerView.setLayoutManager(layoutManager);
        timelineRecyclerView.setAdapter(adapter);
        adapter.notify();
    } catch (Exception ex) {
        System.out.print(ex.toString());
    }

    timelineRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getContext(), new RecyclerItemClickListener.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {
            Intent intent = new Intent(getContext(), ImageViewer.class);
            intent.putExtra("img", timelineArrayList.get(position).getPhoto());
            startActivity(intent);
        }
    }));