zoukankan      html  css  js  c++  java
  • 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());
    }

    系列索引

  • 相关阅读:
    physicsbased animation阅读计划
    读代码的一点感想
    Paired Joint Coordinates
    坐标变换
    ADO.NET用法示例
    希腊字母读法
    数据库系统概论(第三版)学习笔记
    在网页里让文本框只能输入数字的一种方法。外加回车换Tab (javascript key键的使用)+禁止切换输入法转
    常用的一些javascript小技巧
    在.NET2.0中上传文件操作(解决了上传文件大小和多文件限制)转
  • 原文地址:https://www.cnblogs.com/keyindex/p/ContextMenu.html
Copyright © 2011-2022 走看看