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菜单后弹出的对话框】
时间: 2024-09-28 04:40:25