菜单的添加

1.线性布局 添加按钮。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6  tools:context="com.example.administrator.android.MainActivity"
 7 android:orientation="vertical">
 8 
 9     <Button
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         android:text="按钮"
13         android:id="@+id/bt_1"/>
14     <Button
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text="上下文菜单按钮"
18         android:id="@+id/bt_2"/>
19 </LinearLayout>

注意:

1.android:orientation="vertical" 在线性布局里必须添加。

 

2.添加程序运行java代码。

 

  1 package com.example.administrator.android;
  2 
  3 import android.support.v7.app.AppCompatActivity;
  4 import android.os.Bundle;
  5 import android.view.ContextMenu;
  6 import android.view.Menu;
  7 import android.view.MenuInflater;
  8 import android.view.MenuItem;
  9 import android.view.SubMenu;
 10 import android.view.View;
 11 import android.widget.Button;
 12 import android.widget.Toast;
 13 
 14 public class MainActivity extends AppCompatActivity {
 15 
 16     Button bt_1;
 17     Button bt_2;
 18 
 19 
 20     @Override
 21     protected void onCreate(Bundle savedInstanceState) {
 22         super.onCreate(savedInstanceState);
 23         setContentView(R.layout.activity_main);
 24 
 25         bt_1 = (Button)findViewById(R.id.bt_1);
 26         bt_2 = (Button)findViewById(R.id.bt_2);
 27 
 28 
 29         //给组件添加上下文菜单
 30         bt_2.setOnCreateContextMenuListener(this);
 31 //        //添加长按监听器
 32 //        bt_2.setOnLongClickListener(new View.OnLongClickListener() {
 33 //            @Override
 34 //            public boolean onLongClick(View v) {
 35 //                Toast.makeText(MainActivity.this, "按钮被长按", Toast.LENGTH_SHORT).show();
 36 //                return true;//后面不再处理
 37 //            }
 38 //        });
 39         //点击
 40         bt_1.setOnClickListener(new View.OnClickListener() {
 41             @Override
 42             public void onClick(View v) {
 43 
 44                 Toast.makeText(MainActivity.this, "按钮被点击", Toast.LENGTH_SHORT).show();
 45             }
 46         });
 47         //长按
 48         bt_1.setOnLongClickListener(new View.OnLongClickListener() {
 49             @Override
 50             public boolean onLongClick(View v) {
 51 
 52                 Toast.makeText(MainActivity.this, "按钮被长按", Toast.LENGTH_SHORT).show();
 53                 //事件是否已经被消费
 54                 return true;
 55             }
 56         });
 57     }
 58     //重写创建上下文菜单的方法
 59     @Override
 60     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
 61         super.onCreateContextMenu(menu, v, menuInfo);
 62         //代码模式(java)
 63         menu.add(1, 0, 1, "字体大小");
 64         menu.add(1,1,2,"背景颜色");
 65         //添加子菜单
 66         SubMenu sm = menu.addSubMenu(1, 2, 3, "子菜单");
 67         sm.add(2,21,0,"子菜单1");
 68         sm.add(2,22,1,"子菜单2");
 69         //加载文件
 70         MenuInflater m = getMenuInflater();
 71         m.inflate(R.menu.test3_menu,menu);
 72     }
 73 
 74     @Override
 75     public boolean onContextItemSelected(MenuItem item) {
 76 
 77         Toast.makeText(MainActivity.this, "上下文菜单的标题:"+item.getTitle(), Toast.LENGTH_SHORT).show();
 78 
 79         return super.onContextItemSelected(item);
 80     }
 81 
 82     //给activity 添加选项菜单
 83     //重写
 84     @Override
 85     public boolean onCreateOptionsMenu(Menu menu) {
 86 //        //添加菜单
 87 //        menu.add(1,1,0,"添加");
 88 //        menu.add(1,2,2,"修改");
 89 //        menu.add(1,3,1,"删除");
 90 
 91         //加载菜单文件方式
 92         //1-获得菜单加载器
 93         MenuInflater m = getMenuInflater();
 94 
 95         //2-加载菜单文件 1)菜单文件 2)当前菜单
 96         m.inflate(R.menu.test3_menu,menu);
 97 
 98         return super.onCreateOptionsMenu(menu);
 99     }
100 
101     @Override
102     public boolean onOptionsItemSelected(MenuItem item) {
103         Toast.makeText(MainActivity.this, "菜单项的id="+item.getItemId()
104                 +"菜单项的Title"+item.getTitle(), Toast.LENGTH_SHORT).show();
105         if (item.getItemId()==R.id.me_1)
106         {
107             Toast.makeText(MainActivity.this, "删除被执行", Toast.LENGTH_SHORT).show();
108         }
109         else if (item.getItemId()==R.id.me_2)
110         {
111             Toast.makeText(MainActivity.this, "修改被执行", Toast.LENGTH_SHORT).show();
112         }
113         return super.onOptionsItemSelected(item);
114     }
115 }

 

3。添加目录代码程序

1 <?xml version="1.0" encoding="utf-8"?>
2 <menu xmlns:android="http://schemas.android.com/apk/res/android">
3 
4     <item android:id="@+id/me_1" android:title="删除"/>
5     <item android:id="@+id/me_2" android:title="修改"/>
6 </menu>

 

程序截图如下:

【主界面】

【长按按钮弹出上下文菜单】

 

【单击子菜单弹出的上下文菜单和提示】

【选择右上角的menu菜单后弹出的对话框】

 

posted @ 2016-05-09 20:41  宫崎天川  阅读(217)  评论(0编辑  收藏  举报