首页 > 系统 > Android > 正文

Android上下文菜单用法实例分析

2020-04-11 11:26:03
字体:
来源:转载
供稿:网友

本文实例讲述了Android上下文菜单用法。分享给大家供大家参考。具体如下:

上下文菜单不同于选项菜单,选项菜单服务于Activity,而上下文菜单则是注册到某个View对象上的。

如果一个View对象注册了上下文菜单,用户可以通过长按该View对象以呼出上下文菜单。

上下文菜单不支持快捷键,其菜单选项也不能附带图标,但是可以为上下文菜单的标题指定图标。

以下模拟上下文菜单

main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout android:id="@+id/LinearLayout01"  android:layout_width="fill_parent"   android:layout_height="fill_parent"  android:orientation="vertical"  xmlns:android="http://schemas.android.com/apk/res/android">  <EditText android:text="第一文本框"     android:id="@+id/editText01"    android:layout_width="fill_parent"    android:layout_height="wrap_content" />  <EditText android:text="第二文本框"     android:id="@+id/editText02"    android:layout_width="fill_parent"    android:layout_height="wrap_content" /></LinearLayout>

MeunActivity类

package com.ljq.activity;import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;import android.view.MenuItem;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.EditText;public class MeunActivity extends Activity {  private EditText editText01=null;  private EditText editText02=null;  private final int MENU1 = 1;  private final int MENU2 = 2;  private final int MENU3 = 3;  private final int MENU4 = 4;  private final int MENU5 = 5;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    editText01=(EditText)findViewById(R.id.editText01);    editText02=(EditText)findViewById(R.id.editText02);    //为View对象注册上下文菜单    this.registerForContextMenu(editText01);    this.registerForContextMenu(editText02);  }  /**   * 初始化上下文菜单   *    * 每次调出上下文菜单时都会被调用一次   */  @Override  public void onCreateContextMenu(ContextMenu menu, View v,      ContextMenuInfo menuInfo) {    menu.setHeaderIcon(R.drawable.header);    switch (v.getId()) {    case R.id.editText01:      menu.add(0, MENU1, 0, "菜单项1");      menu.add(0, MENU2, 0, "菜单项2");      menu.add(0, MENU3, 0, "菜单项3");      break;    case R.id.editText02:      menu.add(0, MENU4, 0, "菜单项4");      menu.add(0, MENU5, 0, "菜单项5");      break;    }    //super.onCreateContextMenu(menu, v, menuInfo);  }  /**   * 当用户选择了上下文菜单选项后调用该事件   */  @Override  public boolean onContextItemSelected(MenuItem item) {    switch (item.getItemId()) {    case MENU1:    case MENU2:    case MENU3:      editText01.append("/n"+item.getTitle()+"被按下");      break;    case MENU4:    case MENU5:      editText02.append("/n"+item.getTitle()+"被按下");      break;    }    return true;  }}

运行结果:

希望本文所述对大家的Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表