首页 > 解决方案 > 如何从该项目上的 PopupMenu 引用 ListView 项目

问题描述

我有一个片段中的列表视图的自定义适配器。列表视图中的每个项目都有一个弹出菜单。弹出菜单上的选项是向上或向下移动列表视图中的项目。我的问题是如何从弹出菜单项单击侦听器中引用列表视图。

适配器->getView 和弹出监听器代码是:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    convertView = inflater.inflate(R.layout.row_media_morebtn, null);
    parent.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);

    final ImageButton imgCk = convertView.findViewById(R.id.moreButton);

    imgCk.setImageResource(R.drawable.more_hor);
    imgCk.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            v.findViewById(R.id.moreButton).setTag(position);
            showPopupMenu(v, position);

        }
    });

    return convertView;
}

private void showPopupMenu(View view, int position) {
    PopupMenu popup = new PopupMenu(context, view, Gravity.END);

    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.mediapopup, popup.getMenu());

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {

            switch (item.getItemId()) {

                case R.id.movedown:
                    //move item down

                    break;
            }
            return true;
        }
    });
    popup.show();
}

标签: android

解决方案


推荐阅读