回收器视图添加项上单击监听器多次启动活动

时间:2018-09-25 05:49:05

标签: android android-recyclerview recycler-adapter

@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);
        }
    }));

addOnItemTouchListener多次启动活动我该怎么办。我累了添加标志,完成点击后的活动。

6 个答案:

答案 0 :(得分:1)

没有任何帮助,所以我决定使用列表视图和listview.onItemClickListner() 它为我工作。谢谢大家

https://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener#summary

答案 1 :(得分:0)

使用OnClickListener代替addOnItemTouchListener

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

答案 2 :(得分:0)

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

  

什么时候应该使用它?

     

当您使用OnItemClickListener时,   需要确定当用户单击您的视图中的视图时会发生什么   RecyclerView。这可能是删除某些内容或开始新的操作   活动。 OnItemTouchListener通常用于创建手势   与RecyclerView中的某些视图进行交互。

答案 3 :(得分:0)

尝试使用界面模式从ViewHolder向UI(Activity / Fragment)提供onClickListener,然后开始活动

答案 4 :(得分:0)

请将OnclickListener添加到视图持有人的视图中

以下是示例

 public class CustomViewHolder extends RecyclerView.ViewHolder{
        
        Button add;
       
        public CustomViewHolder(View itemView) {
            super(itemView);
            
            add = itemView.findViewById(R.id.add);
           
            add.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                  
                }
            });
          
          }
    }

答案 5 :(得分:0)

为什么不使用Onclick监听器