Android 各种菜单,弹出菜单,打开文件子菜单,文本框的复制粘贴全选菜单效果,自定义图片文字菜单效果,PopupMenu,PopupWindow

本文详细介绍了Android中的各种菜单效果,包括弹出菜单、打开文件子菜单、文本框的复制粘贴全选功能,以及自定义图片文字菜单。通过PopupMenu实现动态显示,并利用PopupWindow创建交互式弹出界面。同时,文章还探讨了如何在ListView中应用上下文菜单,以及自定义菜单的实现步骤,包括布局文件、JavaBean实体、Adapter适配和Activity中的功能实现。
摘要由CSDN通过智能技术生成

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,特迷倒&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值