THis is test for 页首

android的ContextMenu

前言

  这段时间在研究android平台上的开源项目——StandupTimer,这是由jwood所设计的一个较为简单android应用,用于控制会议时间,类似秒表倒计时。

ContextMenu

  android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来。  SDK上的描述:Context Menu A floating list of menu items that appears when the user performs a long-press on a View.

使用步骤

  ContextMenu的使用也比较简单和OptionsMenu相似,先添加XML文件,然后重载对应的方法成员。
  首先在res文件夹下新建menu目录,然后往里面添加menu的XML 文件。OptionsMenu  和 ContextMenu格式的是一样的。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/deleteTeam" android:title="@string/delete"
android:icon
="@android:drawable/ic_menu_delete"/>
</menu>

 

  item:每一个item对应一项菜单。
  android:icon:用于指定菜单显示的图标。
  android:title:菜单的标题,显示在图标下面。
  关于Menu的更多属性设置请查看SDK上的 Menu Resource
  第二步是重写 onCreateContextMenu方法。
代码
@Override
publicvoid onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater
=getMenuInflater();
inflater.inflate(R.menu.meetings_context_menu, menu);
}

 

接下来是处理菜单的点击事件
 
代码
@Override
publicboolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info
= (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case R.id.delete_meeting:
postionOfMeetingToDelete
= info.position;
showDialog(CONFIRM_DELETE_MEETING_DIALOG);
returntrue;
default:
returnsuper.onContextItemSelected(item);
}
}

 

这里我们使用AdapterContextMenuInfo 来获取上下文菜单 获取对应VIEW 的信息。.position 在这里返回了ListActivity中的位置,
  The position in the adapter for which the context menu is being displayed.

注册菜单

  ContextMenu和OptionsMenu主菜单不同的是上下文菜单需要使用registerForContextMenu进行注册,否则将无法显示。
代码
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teams);
//将右键菜单注册给List 控件
registerForContextMenu(getListView());
}

 

系列索引

posted @ 2010-08-31 16:41  DotDot  阅读(12578)  评论(1编辑  收藏  举报
页脚