0
RecyclerView
にonclick
メソッドを設定しようとしています。それは別のプロジェクトでは動作しましたが、ここでは動作しません私はウェブ上で検索したが、それを理解することはできない。トーストさえも現れていない。誰か、私に間違いをしていることを私に説明してもらえますか?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();
}
}
itemView.setClickable(true); –
ありがとうございました。しかし、私はクリックすると、私のモニターで私はそれらのメッセージを取得します: 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} –
ウィンドウのフォーカスがないためにイベントを取り消す:: => .setFocusable(true); :) –