2012-07-14 47 views
1

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

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

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

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

idea2: 我使用contextmenu长按这个项目。但是这个选项对于用户来说是“不可见的”,所以他们怎么知道他们可以对这些项目进行长时间的按压?

您认为如何?

回答

4

通常的方法是创建列表(由一个列表项长时间点击激活)的上下文菜单。

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

这听起来像你知道如何来实现它,但如果你不...

首先,您注册列表中的上下文菜单:

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

然后你提供代码OT创建上下文菜单(你可以从一个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); 
} 
+0

谢谢你的回答,我会做上下文菜单。 虽然,我个人更喜欢Bada的方式:) – Zotyi 2012-07-14 16:20:58

0

的长按该项目是为了实现你的选择是最常见的方式,让用户了解有关这种事情。我认为这是遵循的方式。 但是你也可以实现你的按钮,或者一个幻灯片动作,它显示与你的长按(例如官方的twitter应用程序)相同的选项。

+0

感谢答案,我会做的上下文菜单即可。 虽然,我个人更喜欢Bada的方式:) – Zotyi 2012-07-14 16:19:44

相关问题