我有两个RecyclerViews
视图。它们具有不同的ArrayList,但具有相同的适配器。在我的活动的OnClick方法中,我想获取单击了哪个Recyclers
,然后选择该项目。
我尝试使用view instanceof RecylcerView
,但这并不能解决问题。
最佳答案
您可以将onClickListener添加到relativeLayout的子布局中。
考虑到,第一个RecyclerView具有LinearLayout,第二个内部具有RelativeLayout(我的意思是我认为LinearLayout是第一个RecyclerView中单个项目的父布局,而RelativeLayout是第二个RecyclerView中单个项目的父布局)。
linLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getParentName(v);
}
});
relLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getParentName(v);
}
});
private void getParentName (View v){
View view = (View) v.getParent();
switch (view.getId()) {
case R.id.linLayout:
Toast.makeText(MainActivity.this, "First One", Toast.LENGTH_SHORT).show();
break;
case R.id.relLayout:
Toast.makeText(MainActivity.this, "Second One", Toast.LENGTH_SHORT).show();
break;
}
}
我们知道,如果它是LinearLayout,则其父对象是第一个RecyclerView。
如果是RelativeLayout,则其父级是第二个RecyclerView。
但是,通过使用上述方法,我们可以使单个子视图的根布局具有相同的布局(LinearLayout或RelativeLayout),并看到上述功能有效。