的回收子视图包含两个可点击的对象,一个是一组TextViews和ImageView的,另外一个是一个复选框 (参见 - Android Recyclerview Multiple onclick items) 我想看看是否在儿童复选框被点击或不。如果是这样,那么我改变CheckBox的状态。 否则,我启动另一项活动(对于结果)。以上链接显示处理点击持有人。我想在我设置RecyclerView的其他活动中处理点击。如何检查被点击的recyclerview孩子该项目
//the view needs a listener
final GestureDetector mGestureDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener() {
@Override public boolean onSingleTapUp(MotionEvent e) {
return true;
}
});
mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
View child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());
if(child!=null && mGestureDetector.onTouchEvent(motionEvent)){
if(child.getId() == R.id.chk_box_pin){
//checking, this didn't work
}
else {
TextView idView = (TextView) child.findViewById(R.id.note_id_txt_vw);
if (DEBUG) Toast.makeText(getActivity(),
"ID is " + idView.getText().toString(), Toast.LENGTH_SHORT).show();
startEditNoteActivity(ActivityContract.ACTIVITY_EDIT, idView.getText().toString());
}
return true;
}
return false;
}
@Override
public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
}
});
有没有一种方法可以处理活动(而不是ViewHolder)中的子项中的多个项目的点击?
感谢您的答复! 它有帮助,但我不确定你希望我如何在活动X(我已经定义了recyclerview点击监听器)上调用回来的东西。我知道如果我将大部分代码迁移到适配器上,就可以完成这项工作,但是这会破坏代码模块化。而我们不希望那样:) 你能用一个小例子来详细说明吗?那将是超级。 – jinx3d