1

我是 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/ 如果用户点击项目的其他部分,只需打开详细信息活动。

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

你怎么看?

4

2 回答 2

4

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

而“长按上下文菜单”是 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);
}
于 2012-07-14T15:35:29.300 回答
0

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

于 2012-07-14T15:20:45.567 回答