2016-10-18 8 views
0

RecyclerViewonclickメソッドを設定しようとしています。それは別のプロジェクトでは動作しましたが、ここでは動作しません私はウェブ上で検索したが、それを理解することはできない。トーストさえも現れていない。誰か、私に間違いをしていることを私に説明してもらえますか?RecyclerView onClickがまったく機能しない

は、ここに私のコードです:

private Context mContext; 
private MenuImages[] mMenuImages; 

public MenuAdapter(Context context, MenuImages[] menuImages){ 
    mContext = context; 
    mMenuImages = menuImages; 
} 

@Override 
public MenuViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.menu_list_item, parent, false); 
    MenuViewHolder viewHolder = new MenuViewHolder(view); 

    return viewHolder; 
} 

@Override 
public void onBindViewHolder(MenuViewHolder holder, int position) { 
    holder.bindMenu(mMenuImages[position]); 
} 

@Override 
public int getItemCount() { 
    return mMenuImages.length; 
} 

public class MenuViewHolder extends RecyclerView.ViewHolder 
     implements View.OnClickListener{ 

    public ImageView mImageView; 
    public TextView mTextView; 

    public MenuViewHolder(View itemView) { 
     super(itemView); 

     mImageView = (ImageView) itemView.findViewById(R.id.itemImageView); 
     mTextView = (TextView) itemView.findViewById(R.id.textView2); 

     itemView.setOnClickListener(this); 
    } 

    public void bindMenu(MenuImages menuImage){ 
      mImageView.setImageBitmap(menuImage.getImageMenu()); 
      mTextView.setText(menuImage.getTitleImageMenu()); 
    } 

    @Override 
    public void onClick(View v) { 
     Toast.makeText(v.getContext(), getLayoutPosition(), Toast.LENGTH_LONG).show(); 
    } 
} 
+0

itemView.setClickable(true); –

+0

ありがとうございました。しかし、私はクリックすると、私のモニターで私はそれらのメッセージを取得します: W/ViewRootImpl:ウィンドウのフォーカスがないためにイベントを取り消す:MotionEvent {action = ACTION_CANCEL、actionButton = 0、id 0:= 481.59375、y [0] = 620.4297、toolType [0] = TOOL_TYPE_FINGER、buttonState = 0、metaState = 0、flags = 0x0、edgeFlags = 0x0、pointerCount = 1、historySize = 0 、eventTime = 72911、downTime = 65936、deviceId = 0、source = 0x1002} –

+0

ウィンドウのフォーカスがないためにイベントを取り消す:: => .setFocusable(true); :) –

答えて

0

それが遅れる場合がありますが、あなたのレイアウトxmlファイルにあなたは=「false」にしても、子供たちに=「false」にフォーカス可能な属性クリッカブルを追加する必要があり、のTextViewを表示し、あなたのケースでイメージビュー

関連する問題