我的主要活动中有一个RecyclerView和GridView。两者都注册了相同的ContextMenu。一切都很好,在我处理GridView的自定义适配器并进行测试时,我发现RecyclerView返回的视图错误。 我注意到,当我长按第一个视图时,它将正常返回第一个视图,但是长按每个下一个视图将返回前一个视图。 我试图重新检查我正在处理的大多数文件的历史记录,但是一切正常。还试图使现金无效并重新启动,但没有运气。 这是我的onCreateContextMenu。
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
if (v.getId() == R.id.links_listview) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
tTitle = info.targetView.findViewById(R.id.linkTitle);
tText = info.targetView.findViewById(R.id.linkText);
menu.setHeaderTitle(tTitle.getText().toString());
String[] menuItems = getResources().getStringArray(R.array.menu);
for (int i = 0; i < menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
} else if (v.getId() == R.id.horizontal_recycler) {
tTitle = v.findViewById(R.id.linkTitle);
tText = v.findViewById(R.id.linkText);
menu.setHeaderTitle(tTitle.getText().toString());
String[] menuItems = getResources().getStringArray(R.array.menu);
for (int i = 0; i < menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}