千家信息网

Android studio如何实现菜单效果

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关Android studio如何实现菜单效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、onCreateOption
千家信息网最后更新 2026年11月01日Android studio如何实现菜单效果

今天就跟大家聊聊有关Android studio如何实现菜单效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、onCreateOptionsMenu()

首先在res目录下新建一个menu文件夹,右击res目录→New→ Directory,输入文件夹名字menu(随意),点击OK,接着在menu文件夹下面新建一个main的菜单文件。点击menu文件夹new→menu resource file。
activity.xml文件代码不需要改动。

MainActivity.java 文件代码:

package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    //用onCreateOptionsMenu()显示菜单    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu,menu);//getMenuInflater()方法得到MenuInflater        //调用inflate接收两个参数        //R.menu.main指调用menu文件下的main资源文件        return true;//返回true,允许创建的菜单显示,返回false不显示    }    //定义菜单响应事件    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()){   //item.getItemId()判断我们选择那个菜单项            case R.id.first:                Toast.makeText(this, "FIRST", Toast.LENGTH_SHORT).show();                break;            case R.id.second:                Toast.makeText(this, "SECOND", Toast.LENGTH_SHORT).show();                break;                default:        }        return true;    }}

关键代码:菜单 main.xml文件代码:

                

右上角三个点就是菜单,点击打开如图:

一的进阶(带子菜单的菜单)

menu.xml:

                                                                        

.java:

package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    //用onCreateOptionsMenu()显示菜单    @Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater inflater=new MenuInflater(this);//实例化一个MenuInflater对象        inflater.inflate(R.menu.menu,menu);//解析菜单文件        return true;    }    //定义菜单响应事件    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if(item.getItemId()==R.id.f1)            Toast.makeText(this, "更换背景", Toast.LENGTH_SHORT).show();        else if(item.getItemId()==R.id.f3)            Toast.makeText(this, "恢复出厂", Toast.LENGTH_SHORT).show();        else        {            if(item.getGroupId()==R.id.group1){ //判断是否选中了第一层第二项                //与menu.xml文件对应 android:checkableBehavior="all"                if(item.isChecked()) //菜单被选中                    item.setChecked(false);//设置菜单项不被选中                else                    item.setChecked(true);//设置菜单项被选中            }        }        return true;    }}

效果:

二、onCreateContextMenu()(上下文菜单)

main.xml:

    

menu.xml:

.java:

package com.example.myapplication;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.ContextMenu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv=(TextView)findViewById(R.id.text1);        registerForContextMenu(tv);//为文本注册上下文菜单    }    //用onCreateContextMenu()显示菜单    @Override    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {        MenuInflater inflater=new MenuInflater(this);//实例化MenuInflater一个对象        inflater.inflate(R.menu.menu,menu);//解析菜单文件        menu.setHeaderTitle("选择颜色:");//为菜单头设置标题    }    @Override    public boolean onContextItemSelected(MenuItem item) {        switch (item.getItemId()){            case R.id.red:                tv.setTextColor(Color.rgb(255,0,0));                break;            case R.id.green:                tv.setTextColor(Color.rgb(0,255,0));                break;            default:                tv.setTextColor(Color.rgb(0,0,255));        }        return true;    }}

长按打开菜单四个字

随便选择颜色打开菜单四个字就会变为相应的颜色

看完上述内容,你们对Android studio如何实现菜单效果有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

菜单 文件 代码 文件夹 效果 内容 颜色 选择 上下 上下文 事件 实例 对象 目录 三个 两个 关键 参数 名字 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司图片 米客互联网科技 长亮科技互联网金融 互联网金融和金融科技 盛创互联网科技有限公司 上海电发互联网科技有限公司 哈尔滨新华互联网科技学院 互联网大会黑科技排名 栖莱科技互联网股份有限公司 元气玛特互联网科技公司是外包吗 山东星卡互联网科技有限公司官网 每天都有哪些好的互联网科技 小米互联网科技园入驻 江苏互联网智能科技软件 互联网风格科技公司名称 陕西彩京云互联网科技有限公司 广东猫王互联网科技有限公司电话 互联网大会出现的黑科技 互联网科技自媒体灵感 利用互联网等科技手段 互联网与科技金融数据 齐家互联网科技有限公司 汉立互联网科技有限公司联系电话 成都互联网科技公司100强 互联网校园科技培训 浙南科技城互联网大厦建设工程 互联网科技手抄报图片 安徽零酒互联网科技有限公司 互联网科技品牌 安徽九吞吴互联网科技有限公司
0