onCreateContextMenu返回错误的视图

时间:2019-03-08 13:02:33

标签: android gridview android-recyclerview

我的主要活动中有一个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]);
        }
    }
}

0 个答案:

没有答案