Android 各种菜单,弹出菜单,打开文件子菜单,文本框的复制粘贴全选菜单效果,自定义图片文字菜单效果
菜单弹出效果
手机屏幕有限,经常使用,方便显示更多功能。
在android 4.0之前对于系统的菜单可以显示选项图片,但是在4.0之后通常无法直接显示菜单图片了。除非自己定义item
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请按键盘物理菜单键,弹出选项菜单"
android:textSize="30dp"
/>
</LinearLayout>
package com.ncsyeyy.YeyyOptionMenu;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MyActivity extends Activity {
// 定义Menu中每个菜单选项的Id
private final static int Menu_1= Menu.FIRST;
private final static int Menu_2= Menu.FIRST+1;
private final static int Menu_3= Menu.FIRST+2;
private final static int Menu_4= Menu.FIRST+3;
private final static int Menu_5= Menu.FIRST+4;
private final static int Menu_6= Menu.FIRST+5;
private final static int Menu_7= Menu.FIRST+6;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onCreateOptionsMenu(Menu menu){
// 参数menu就是拿到的当前activity菜单对象
// 想要给当前页面添加方法的话就add进去即可
// add方法的参数:add(分组id,itemid,排序,菜单文字)
menu.add(0,Menu_1,0,"编辑模式");
menu.add(0,Menu_2,0,"修改壁纸");
menu.add(0,Menu_3,0,"全局搜索");
menu.add(0,Menu_4,0,"桌面缩略图");
menu.add(0,Menu_5,0,"桌面效果");
menu.add(0,Menu_6,0,"系统设置");
menu.add(0,Menu_7,0,"用户信息");
return super.onCreateOptionsMenu(menu);
}
// Menu菜单选项的选择的回调事件
public boolean onOptionsItemSelected(MenuItem item){
// 参数为用户选择的菜单选项对象
// 根据菜单选项的id来执行相应的功能
switch (item.getItemId()){
case 1:
Toast.makeText(this,"你单击了编辑模式选项",Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(this,"你单击了修改壁纸选项",Toast.LENGTH_LONG).show();
break;
case 3:
Toast.makeText(this,"你单击了全局搜索选项",Toast.LENGTH_LONG).show();
break;
case 4:
Toast.makeText(this,"你单击了桌面缩略图选项",Toast.LENGTH_LONG).show();
break;
case 5:
Toast.makeText(this,"你单击了桌面效果选项",Toast.LENGTH_LONG).show();
break;
case 6:
Toast.makeText(this,"你单击了系统设置选项",Toast.LENGTH_LONG).show();
break;
case 7:
Toast.makeText(this,"你单击了用户信息选项",Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
// 选项菜单关闭时的回调方法
public void onOptionsMenuClosed(Menu menu){
Log.e("onOptionsMenuClosed","用户菜单关闭了");
}
// 菜单显示之前的回调方法
public boolean onPrepareOptionsMenu(Menu menu){
Log.e("onPrepareOptionsMenu","用户菜单准备好被显示了");
return true;
}
}
菜单新建文件,保存文件,打开文件
菜单具有层级效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请单击物理菜单键显示菜单,再次单击菜单选项显示子菜单"
android:textSize="30dp"
/>
</LinearLayout>
Java代码:
package com.ncsyeyy.YeyyOpenMenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;
public class MyActivity extends Activity {
// 定义Menu中每个菜单选项的id
final int Menu_1 = Menu.FIRST;
final int Menu_2 = Menu.FIRST + 1;
final int Menu_3 = Menu.FIRST + 2;
final int Menu_4 = Menu.FIRST + 3;
final int Menu_5 = Menu.FIRST + 4;
final int Menu_6 = Menu.FIRST + 5;
final int Menu_7 = Menu.FIRST + 6;
final int Menu_8 = Menu.FIRST + 7;
final int Menu_9 = Menu.FIRST + 8;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
// 创建Menu菜单的回调方法
public boolean onCreateOptionsMenu(Menu menu) {
// 定义子菜单,然后添加到Menu中
SubMenu fileMenu = menu.addSubMenu("新建");
// 在菜单选项的子菜单中添加选项内容
// add放啊发的参数,add(分组id,特迷倒,排序,菜单文字)
fileMenu.add(0, Menu_1, 0, "文件1");
fileMenu.add(0, Menu_2, 0, "文件2");
fileMenu.add(0, Menu_3, 0, "文件3");
SubMenu openMenu = menu.addSubMenu("打开");
// 在菜单选项的子菜单中添加选项内容
// add方法的参数,add(分组id,特迷倒&#