2016-10-18 4 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] = 0, x [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"를 아이들이보기에, 텍스트 뷰 및 귀하의 경우 이미지 뷰

관련 문제