2015-08-14 71 views
0

我有一個帶有多個項目的RecyclerView。每個項目都有多個按鈕來執行一些操作。 所以我實現了View.OnClickListener到我的RecyclerViewAdapter。RecyclerView中的多個onClickListener

但似乎我只能在onCreateViewHolder函數中設置一個OnClickListener。

有誰知道任何解決方案在我的RecyclerView的每個項目中有多個按鈕?

+0

讓你ViewHolder實現OnClickListener,那麼你可以設置多個setOnClickListener調用 – pskink

+0

在哪裏我可以設置的setOnClickListener?在我的ViewHolder類中? – SocialSupaCrew

+0

是的,只需調用v0.setOnClickListener(this); v1.setOnClickListener(本);等 – pskink

回答

1

您可以實現OnClickListener並在onClick函數內實現每個動作。喜歡這個。

static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 
    Button button1; 
    Button button2; 
    Button button3; 
    Button button4; 

    public MyViewHolder(View itemView) { 
     super(itemView); 
     button1 = (Button) itemView.findViewById(R.id.button1); 
     button2 = (Button) itemView.findViewById(R.id.button2); 
     button3 = (Button) itemView.findViewById(R.id.button3); 
     button4 = (Button) itemView.findViewById(R.id.button4); 

     button1.setOnClickListener(this); 
     button2.setOnClickListener(this); 
     button3.setOnClickListener(this); 
     button4.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
     if (view == button1) { 
      // button1 action 
     } else if (view == button2) { 
      // button2 action 
     } else if (view == button3) { 
      // button3 action 
     } else if (view == button4) { 
      // button4 action 
     } 
    } 
} 
+0

感謝您的回答,但我已經嘗試這種方式,我發現如何訪問我的持有人的位置, – SocialSupaCrew

+0

您可以創建自己的onclicklistener並通過構造函數中的位置 – akash93

+1

@SocialSupaCrew它正在工作,但你正在創建** FOUR **'OnClickListener',用於什麼?只需讓MyViewHolder實現OnClickListener並創建** ONE **常用偵聽器 – pskink

相關問題