Android基础——选项菜单,上下文菜单

首先要在资源目录下新建menu目录,所有的菜单布局文件都在这个目录下

选项菜单和上下文菜单的资源文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/message" android:title="消息"></item>
    <item android:id="@+id/homepage" android:title="首页"></item>
    <item android:id="@+id/help" android:title="帮追"></item>
    <item android:id="@+id/feedback" android:title="我要反馈"></item>
    <item android:id="@+id/setting" android:title="设置"></item>
    <item android:id="@+id/regard" android:title="关于"></item>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/copy" android:title="复制"></item>
    <item android:id="@+id/save" android:title="保存"></item>
</menu>

java代码

package com.example.mymenui;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private TextView textView = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /*
         * 2:上下文菜单
         * */
        //2.1:配置上下文菜单xml文件

        //2.2:为文本框注册上下文菜单
        textView = (TextView)findViewById(R.id.text1);
        registerForContextMenu(textView);
    }
    //2.3:重写onCreateContextMenu()方法,添加一个上下文菜单
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        MenuInflater menuInflater = new MenuInflater(this);
        menuInflater.inflate(R.menu.contextmenu,menu);
    }
    //2.4:指定各个菜单项被选择时做出的处理
    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.copy:
                Toast.makeText(
                        MainActivity.this,"已复制",Toast.LENGTH_SHORT
                ).show();
                break;
            case R.id.save:
                Toast.makeText(
                        MainActivity.this,"已保存",Toast.LENGTH_SHORT
                ).show();
                break;
        }
        return super.onContextItemSelected(item);
    }

    /*
     * 1:使用选项菜单的
     *   1.1:配置菜单的xml文件
     * */
    //1.2:重写onCreateOptionsMenu() 方法,添加一个选项菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //实例化MenuInflater对象
        MenuInflater menuInflater = new MenuInflater(this);
        //解析菜单资源文件
        menuInflater.inflate(R.menu.menu,menu);
        //返回这个菜单
        return super.onCreateOptionsMenu(menu);
    }
    //1.3:onOptionsItemSelected()对各个菜单项进行处理
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case R.id.setting:
                Intent intent1 = new Intent(
                        MainActivity.this,Setting.class
                );
                startActivity(intent1);
                break;
            case R.id.regard:
                Intent intent2 = new Intent(
                        MainActivity.this,Regard.class
                );
                startActivity(intent2);
                break;
    }
        return super.onOptionsItemSelected(item);
    }

}

原文地址:https://www.cnblogs.com/zsben991126/p/12240959.html

时间: 2024-10-30 15:29:02

Android基础——选项菜单,上下文菜单的相关文章

Android开发长按菜单上下文菜单

安卓开发中长按弹出菜单的创建方法: 1.首先给View注册上下文菜单registerForContextMenu(); 2.添加上下文菜单内容onCreateContextMenu(): ---可以通过代码动态添加: ---可以加载xml文件中的菜单项: 3.设置菜单点击后响应事件onContextItemSelected(); 运行效果图如下: activity_main.xml代码如下: <RelativeLayout android:layout_width="match_paren

android开发之使用上下文菜单

android中的上下文菜单类似于PC上的鼠标右键单击,不同的是android上没有鼠标这一概念,更谈不上右键单击,在android中,一般是长按某个View,调出上下文菜单.与OptionsMenu不同的是,ContextMenu是一个针对View的菜单,它绑定在某一个View上,而OptionsMenu是属于一个Activity的. 现在大部分浏览器都有长按复制的功能,如下图: 这种效果的实现是使用PopupWindow来实现的(关于PopupWindow的使用可以参见我的另一篇文章popu

android 通过点击上下文菜单采用intent启动activity

编程小白一枚,如题,如何才能做到,我现在已经在app中添加了浮动的导航菜单,我希望在点击导航菜单的时候启动一个新的activity,但是下面的代码完成不了,请大神看一下. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 protected void onCreate(Bundle savedInstanceSta

Android开发系列(二十九):使用ContextMenu创建上下文菜单

在上一篇我们介绍了创建选项菜单,这里我们介绍下创建上下文菜单. 上下文菜单就是通过长按某一段文字,然后出来相应的菜单.就比如贴吧,当你长安某一楼层,就会弹出来一个"复制"这一楼层文字的菜单,点一下"复制",这段文字就保存在你手机的临时存储的地方了,可以在别的地方黏贴. 开发上下文菜单的步骤: 1.重写Activity的onCreateContextMenu(ContextMenu menu,View source,ContextMenu.Context MenuIn

android 上下文菜单详解

本文使用xml来创建上下文菜单 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add" android:title="添加" android:orderInCategor

Android自定义上下文菜单

今天自定义了一个简单的Android菜单控件.实现方式是:PopupWindow和ListView. 现在来给大家分享一下源码: SHContextMenu.java 核心代码部分:主要是对PopupWindow和ListView的初始化,为ListView设置数据源,以及封装了菜单的显示和隐藏的方法.还有提供了菜单的点击回调. import android.app.Activity; import android.content.Context; import android.graphics

Android进阶(二十八)上下文菜单ContextMenu使用案例

上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等操作,但是现在此操作莫名其妙的消失了.写了个测试Demo,如中图所示,一切按照逻辑显示正常.怪就怪在项目中无法显示,起初设想是因为Android系统版本太高问题,但是在别的手机上测试之后发现问题依旧存在.难道是因为顶部Tab标题栏遮挡住了选项菜单的显示?继续测试,通过在别的没有Tab标题栏的页面测试选项菜单,

android基础学习 菜单optionMenu

1.选项菜单(optionMenu) 创建选项菜单的步骤: 1.覆盖Activity的 onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用 2.调用Menu的add() 方法添加菜单项(MenuItem),同时可以调用MenuItem的setlcon()方法为菜单项设置图标 3.当菜单项(MenuItem)被选择是,覆盖Activity 的onOptionsItemSelected(MenuItem item)来响应事件 import android.os.

Android 菜单 之 上下文菜单ContextMenu

所谓上下文菜单就是当我们长按某一个文件时弹出的菜单 操作这个菜单我们要重写onCreateContextMenu()方法 如上一篇文章一样,对于这个菜单中选型的操作也有动态添加和xml文件添加两种方法 首先是动态添加 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v