android - 从 ArrayAdapter 内部打开 ContextMenu

标签 android listview contextmenu android-arrayadapter

我的自定义 ArrayAdapter 中的 getView 方法中有一个 setOnClickLisnter 方法。

我想要做的是,在 ListView 的每一行内快速单击一个 imageButton,我希望它打开一个上下文菜单。

当您长按 ListView 时,我目前可以使用 ContextMenu。现在我想将相同的功能转移到上面提到的短按。

我在 onCreate 中有这个:

registerForContextMenu(getListView());

我在 Activity 中还有一个 onCreateContextMenu我的主要问题是,如何从 ArrayAdapter 内部访问它?

编辑: 我不必在 setOncLickListner 方法中执行此操作,只需在 getView

中的某处执行此操作

获取 View 的代码:

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

        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (convertView == null) {

            convertView = inflater.inflate(R.layout.commentlayout, parent,
                    false);
            holder = new ViewHolder();
            holder.ib1 = (ImageButton) convertView
                    .findViewById(R.id.labelChatIcon);


            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
            convertView.setOnCreateContextMenuListener(null);
        }

        holder.ib1.setBackgroundColor(Color.TRANSPARENT);

        holder.ib1.setBackgroundColor(Color.TRANSPARENT);
        holder.ib1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                // Open Context Menu here

            }
        });

        return convertView;
    }

更新:我想我正在改变我的计划,将使用带有单选按钮的警报对话框。在这种情况下,上下文菜单可能不合适。

最佳答案

您可以使用 Alert.Builder 而不是上下文菜单,您可以使用 builder.setView(View v); 添加自定义 View

你会有一个布局文件,其中包含一堆不同宽度的按钮:match_parent。查看this link对于所有可用的不同选项

关于android - 从 ArrayAdapter 内部打开 ContextMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188909/

相关文章:

android代码使用for循环多次点击按钮

android - ListView 项目问题

java - 如何从我的插件的项目资源管理器中删除 Eclipse 上下文菜单“MOVE”

javascript - Highcharts : How to add or remove "chart context menu" from chart container?

android - viewpager2 与 SwipeRefreshLayout 的交互

Android:批量许可?

Android-Firebase onChildChanged

c# - 模仿 Gtk#/gtk-sharp 中的上下文菜单

android - 如何从 ImageAdapter Grid View 类调暗 ImageView ?

c++ - 如何修复ListView中的错误?封装控件时无法选择任何项目