onItemClickListener 介面實作

  • 有時後會遇到某些功能實作之後沒有提供ItemClick的方法,這時候就要自己實作ItemClick介面來達成目的了!!

舉RecyclerView的例子

  • RecyclerView沒辦法直接實作.setOnItemClickListener
  • 所以不能像ListView一樣,取得使用者點到的那一個item
  • 手動實作itemClick可解決這個問題

如何實作?

  • 第一步 - 在RecyclerViewAdapter內實作介面
    public interface onItemClickListener
    {
        void onItemClick(View view,int position);
    }
    private onItemClickListener onItemClickListener;
    public void setOnItemClickListener(onItemClickListener onItemClickListener)
    {
        this.onItemClickListener = onItemClickListener;
    }
  • 第二步 - 在onBindViewHolder透過OnClickListener達到目的
      if(onItemClickListener!=null)
      {
              holder.itemView.setOnClickListener(new View.OnClickListener() 
              {
                  @Override
                  public void onClick(View v) 
                  {
                      int layoutPos = holder.getLayoutPosition();
                      onItemClickListener.onItemClick(v,position);
                  }
              });
      }
    
  • 第三步 - RecyclerViewAdapter的部份完成之後,回到MainActivity就可以實作.onItemClickListener囉
      RecycleViewAdapter mAdapter = new RecycleViewAdapter(this);
          mAdapter.setOnItemClickListener(new RecycleViewAdapter.onItemClickListener() 
          {
              @Override
              public void onItemClick(View view, int position) 
              {
                  Log.d("MYLOG", "onItemClick: "+position);
              }
          });
    

    大功告成!!

results matching ""

    No results matching ""