2016-04-11 6 views
0

は、現在、私もこのようなViewHolderクラスでImageViewのクリックを設定します。その中のimageviewをクリックすると、recyclerviewアイテムのクリックを取り除くにはどうしたらいいですか?

public class HomeMenuViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener, View.OnClickListener { 

     public ImageView imageView; 
     String[] tagBackgroundColors; 
     String[] tagBorderColors; 

     public HomeMenuViewHolder(View itemView, int viewType) { 
      super(itemView); 
      this.viewType = viewType; 

      imageView = (ImageView) itemView.findViewById(R.id.img_menu); 
      imageView.setOnClickListener(this); 

     } 

     @Override 
     public void onClick(View v) { 
      clickListener.onClick(getAdapterPosition(), false); 
      int id = v.getId(); 
      if (id == R.id.cb_share_dday_show) { 
       CheckBox checkBox = (CheckBox) v; 
       if (checkBox.isChecked()) { 
        mPref.setShareDdayShow(Cons.TRUE); 
       } else { 
        mPref.setShareDdayShow(Cons.FALSE); 
       } 
       menuCallback.refreshFragments(); 
      } else if (id == R.id.img_menu) { 
       showChangeColorDialog(); 
      } 
     } 


    private void showChangeColorDialog() { 
      Dialog gridViewDialog = new Dialog(mContext); 
      gridViewDialog.setContentView(R.layout.dialog_change_color); 
      // You have to create the GridView object with gridViewDialog 
      GridView gv = ((GridView) gridViewDialog.findViewById(R.id.grid_change_color)); 
      ChangeTagIconAdapter adapter = new ChangeTagIconAdapter(mContext, tagBackgroundColors, tagBorderColors); 
      gv.setAdapter(adapter); 
      gridViewDialog.show(); 

     } 
} 

私は、recyclerviewの項目の機能は、引き出しを閉じているナビゲーション引き出し内recyclerviewを置きます。私が欲しいのは、recyclerviewのアイテム内のイメージビューをクリックすると、引き出しを閉じずにダイアログが表示されるはずですが、私はいつもリサイクルビューのアイテムとその内部のイメージビューをクリックしています。それを修正する方法を教えてください。ありがとうございました!

+0

チェックボックスがオンになっていますが、このチェックボックスの参照はどこにありますか? – Gorio

+0

@Gorio ImageViewについて質問しています。チェックボックスではないので、不要なコードをいくつか削除しました。 – Kakashi

+0

あなたのコードは不完全です。完全なコードを共有して助けてもらえますか? – Gorio

答えて

0

私はそれを理解しました。私はビューの代わりにアダプタでクリックリスナを設定する必要があります。今すぐ動作します;)

関連する問題