0

RecyclerViewレイアウトに2つのボタンがあり、IDはbutton1button2です。ここでonClick()メソッドの別のビューを取得

は私RecyclerViewアダプタです:vのみbutton1のためのビューを返しますので、

public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { 

    private Context context; 

    private List<Data> dataList; 

    public DataAdapter(Context context, List<Data> dataList) { 
     this.context = context; 
     this.dataList = dataList; 
    } 

    public static class ViewHolder extends RecyclerView.ViewHolder { 
     public Data data; 

     public Button button1, button2; 

     public ViewHolder(View v) { 
      super(v); 

      button1 = (Button) v.findViewById(R.id.button1); 
      button2 = (Button) v.findViewById(R.id.button2); 
     } 

     public void setData(Data data) { 
      this.data = data; 
     } 

     @Override 
     public void onClick(View v) { 
      int id = v.getId(); 

      if (id == R.id.button1) { 
       clickButton(v); 
      } 
     } 
    } 

    @Override 
    public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.my_layout, parent, false); 

     return new ViewHolder(v); 
    } 

    @Override 
    public void onBindViewHolder(final ViewHolder holder, int position) { 
     final Data data = dataList.get(position); 

     holder.setData(data); 

     // 
    } 

    @Override 
    public int getItemCount() { 
     return dataList.size(); 
    } 

    public void clickButton(View v) { 
     Button button1 = (Button) v; 

     // HOW DO I GET BUTTON2? 
    } 
} 

は、どのように私は、私のclickButton()方法でbutton2を得ることができますか?

答えて

0

あなたが好きなクリックリスナー自身から両方のボタンを渡すことができます -

clickButton(button1, button2); 

理由button1button2では、あなたがonClickListenerを実装しているViewHolderクラスのメンバ変数です。

0

あなたはこのような何かを行うことができます。

@Override 
    public void onClick(View v) { 
     v.setTag(v.getId()) 
     switch(v.getId()){ 
      case R.id.button1: 
       clickButton(v); 
       break; 
      case R.id.button2: 
       clickButton(v); 
       break; 
     } 
    } 

そしてclickButton方法では、単にタグを取得し、必要なボタンを取得し、必要に応じて使用するIDを確認してください。

関連する問題