【问题标题】:Context menu from listview adapter来自列表视图适配器的上下文菜单
【发布时间】:2014-01-14 17:23:27
【问题描述】:

我不完全确定这是可能的,但我有几个使用列表视图适配器的活动。我想在我已经能够使用的列表视图项目上实现一个上下文菜单

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    vi.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
            menu.setHeaderTitle(sf.checkBusinessTitle(businessList.getBusinessName()));
            ....rest of context menu creation code...
        }
}

如何从适配器创建 onContextItemSelected?

编辑:如果我将以下内容添加到适配器,则会收到错误“MyAdapter 类型的 onContextItemSelected(MenuItem) 方法必须覆盖或实现超类型方法”:

@Override
public boolean onContextItemSelected(MenuItem item){
}

任何帮助将不胜感激。

【问题讨论】:

    标签: android


    【解决方案1】:

    与您在 ArrayAdapter 实现之外执行的方式完全相同。在getView() 方法中,只需设置:

    your_context.registerForContextMenu(convertView);    // Supposing convertView is your View
    

    并在Activity 中定义onContextItemSelected 覆盖方法,而不是在ArrayAdapter 扩展中。

    【讨论】:

    • 所以我必须为每个使用listview处理onContextItemSelected的Activity添加代码?没有办法获得一组代码来处理选择?
    • 不确定你想做什么以及如何做,但如果你想在几个活动上重用相同的ListView,它可能可以用Fragment实现,或者更容易定义一个全局函数(在扩展Application 的类中),您在其中传递ListView id,它会覆盖该视图的onContextItemSelected 方法。希望这会有所帮助!
    • 好的 - 已将其放入 Fragment .. 如何在 onContextItemSelected 内的列表视图中检索项目的 ID
    • 我想这是你想做的,看看这个:stackoverflow.com/questions/5297842/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多