现在的位置: 首页 > 移动开发 > 正文

android 上下文菜单(长按)通过配置文件生成

2019年07月20日 移动开发 ⁄ 共 2417字 ⁄ 字号 评论关闭

 

 

上下文菜单非常类似于Windows操作系统中的右键菜单,在Android操作系统中,用户可以通过长按打开上下文菜单。

 

 

 

在res下新建menu/mymenu.xml

<?xml version="1.0" encoding="utf-8"?>

<menu

    xmlns:android="http://schemas.android.com/apk/res/android">

    <item

        android:id="@+id/item01"

        android:title="添加联系人"/>

    <item

        android:id="@+id/item02"

        android:title="查看详情"/>

    <item

        android:id="@+id/item03"

        android:title="删除信息"/>

    <item

        android:id="@+id/item04"

        android:title="另存为"/>

    <item

        android:id="@+id/item05"

        android:title="编辑"/>

</menu>

 

 

 

 

在MyMenuDemo.java程序中

package com.li.menu;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

 

public class MyMenuDemo extends Activity {

  private String data[] = new String[]{

     "河池学院","http://blog.sina.com.cn/u/2853310902",

     "数学系:李叶文","中国高校","helloliyewen@163.com"};  //定义ListView的显示项

  private ListView listView = null;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        this.listView = new ListView(this);

        this.listView.setAdapter(new ArrayAdapter<String>(this,

           android.R.layout.simple_expandable_list_item_1,

           this.data));

        super.setContentView(this.listView);

        super.registerForContextMenu(this.listView);

    }

  @Override

  public boolean onContextItemSelected(MenuItem item) {

     switch(item.getItemId()){

     case Menu.FIRST + 1:

       Toast.makeText(this,"您选择的是“添加联系人”项",Toast.LENGTH_LONG).show();

       break;

     case Menu.FIRST + 2:

       Toast.makeText(this,"您选择的是“查看详情”项",Toast.LENGTH_LONG).show();

     break;

     case Menu.FIRST + 3:

       Toast.makeText(this,"您选择的是“删除信息”项",Toast.LENGTH_LONG).show();

     break;

     case Menu.FIRST + 4:

       Toast.makeText(this,"您选择的是“另存为”项",Toast.LENGTH_LONG).show();

     break;

     case Menu.FIRST + 5:

       Toast.makeText(this,"您选择的是“编辑”项",Toast.LENGTH_LONG).show();

     break;

     }

     return false;

  }

  @Override

  public void onContextMenuClosed(Menu menu) {

     Toast.makeText(this,"上下文菜单关闭了",Toast.LENGTH_LONG).show();

  }

  @Override

  public void onCreateContextMenu(ContextMenu menu, View v,

       ContextMenuInfo menuInfo) {

     super.onCreateContextMenu(menu, v, menuInfo);

     menu.setHeaderTitle("信息操作");

     super.getMenuInflater().inflate(R.menu.mymenu, menu);

  }

   

   

}

 

抱歉!评论已关闭.