【问题标题】:Android: best way to provide options for listview itemsAndroid:为列表视图项目提供选项的最佳方式
【发布时间】:2012-07-14 15:15:21
【问题描述】:

我是 Android 开发新手,我的问题是为列表视图项目提供选项的最佳方式是什么? 在 Bada OS 上,您可以将任何列表视图项目水平滑开,并访问该项目的选项。 http://horrorcoding.altervista.org/developing-on-bada-2-0-%E2%80%93-how-to-use-listcontextitems-in-a-listviewgroupedlistview/

但这在 Android 上不存在。那么该怎么做呢? 我的主要活动有一个列表视图,如果您单击一个项目,它会打开一个包含所单击项目详细信息的新活动。

但在主要活动中,您应该能够删除或编辑任何项目。 所以我的想法:

idea1: 我在项目的右上角放置了一个小的编辑图标,当用户单击它时,我会显示带有编辑/删除选项的 QuickAction。 http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/ 如果用户点击项目的其他部分,只需打开详细信息活动。

idea2: 我使用上下文菜单长按该项目。但是这个选项对于用户来说是“不可见的”,那么他们怎么知道他们可以对项目进行长按呢?

你怎么看?

【问题讨论】:

    标签: android listview slide options bada


    【解决方案1】:

    通常的方法是为列表创建一个上下文菜单(通过长按列表项激活)。

    “长按上下文菜单”是 Android 标准。任何用户都知道,无需提供指标 (IMO)。由于您正在制作 Android 应用程序,因此我会坚持使用 Android 约定。 :)

    听起来你知道如何实现它,但万一你不...

    首先,为上下文菜单注册列表:

    ...
    setListAdapter(lists);
    registerForContextMenu(getListView());
    

    然后您提供创建上下文菜单的代码(您也可以从 XML 资源创建它,但我没有方便的示例):

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Item Operations");
        menu.add(0, v.getId(), 0, "Edit Item");
        menu.add(0, v.getId(), 0, "Delete Item");
    }
    

    然后你提供代码来处理菜单中的选项:

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
                .getMenuInfo();
        if (item.getTitle() == "Edit Item") {
            mRowId = info.id;
            DialogFragment_Item idFragment = new DialogFragment_Item();
            idFragment.show(getFragmentManager(), "dialog");
        } else if (item.getTitle() == "Delete Item") {
            mDbHelper.deleteItem(info.id);
            return true;
        }
        return super.onContextItemSelected(item);
    }
    

    【讨论】:

    • 谢谢你的回答,我会做上下文菜单。虽然,就我个人而言,我更喜欢 Bada :)
    【解决方案2】:

    长按项目是实现选项的最常见方式,因此用户知道这种事情。我认为这是遵循的方式。 但是,您也可以实现您的按钮,或显示与长按相同的选项的滑动操作(例如官方推特应用程序)。

    【讨论】:

    • 谢谢你的回答,我会做上下文菜单。虽然,就我个人而言,我更喜欢 Bada :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多