热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Menu自定义菜单

为什么80%的码农都做不了架构师?这篇是基于:http:my.oschina.netu1773495blog306046menu菜单键写的。效果图

为什么80%的码农都做不了架构师?>>>   hot3.png

这篇是基于:http://my.oschina.net/u/1773495/blog/306046 menu 菜单键写 的。

 效果图片,点击Menu.                                            点击图片中的“更多”    

 

 

接下来是:gridview_menu.xml



item_menu.xml:



主java程序:

 

package com.example.menutest;import java.util.ArrayList;
import java.util.HashMap;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnKeyListener;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class MainActivity extends Activity {boolean isMore = false;private final int ITEM_NOTE = 0;private final int ITEM_MORE = 1;private View menuView;AlertDialog menuDialog;GridView menuGridView;int[] arrayImage1 = {R.drawable.menu_edit,R.drawable.menu_more};String [] arrayText1 ={ "书签","更多"};int[] arrayMore ={R.drawable.menu_return,R.drawable.menu_about};String [] arrayText2 ={"信息","返回"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 创建对话框menuDialog = new AlertDialog.Builder(this).create();Log.d("E","menuview");//获取view布局对象。第二参数root,表示是否给该布局外部再嵌套一层父布局,null为不要。//menuView = View.inflate(this, R.layout.gridview_menu, null);LayoutInflater layoutInflater = LayoutInflater.from(this); menuView = layoutInflater.inflate(R.layout.gridview_menu,null);// menuDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //将menuView(也就 是R.layout.gridview_menu) 加载到 menuDialogmenuDialog.setView(menuView);//给对话框 添加 按键事件。menuDialog.setOnKeyListener(new OnKeyListener() { @Overridepublic boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {if(keyCode==KeyEvent.KEYCODE_MENU){dialog.dismiss();//关闭对话框。//menuDialogbuilder.create().show();}return false;}});// 一定记得menuView加上。menuGridView = (GridView)menuView.findViewById(R.id.gridview);menuGridView.setAdapter(adapterDuilder(arrayImage1, arrayText1));menuGridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {switch (arg2) {case ITEM_NOTE:Toast.makeText(getApplicationContext(),"书签",Toast.LENGTH_LONG).show();break;case ITEM_MORE:if(isMore){menuGridView.setAdapter(adapterDuilder(arrayMore, arrayText2));isMore = false;}else{menuGridView.setAdapter(adapterDuilder(arrayImage1,arrayText1));isMore = true;}//更新 menu.menuGridView.invalidate();menuGridView.setSelection(ITEM_MORE);break;default:break;}} });}public SimpleAdapter adapterDuilder(int[]arrayImageName ,String[] arrayTextName) {ArrayList> data = new ArrayList>();for(int i=0;i map = new HashMap();map.put("Image",arrayImageName[i]);map.put("Text",arrayTextName[i]);data.add(map);}SimpleAdapter myAdapter = new SimpleAdapter(this, data,R.layout.item_menu,new String[]{"Image","Text"},new int[]{R.id.item_image,R.id.item_text});return myAdapter; }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {menu.add("menu");//调试结果:is 为 ture.boolean is = super.onCreateOptionsMenu(menu);Log.d("oncreat","menu " + is);return true;}public boolean onMenuOpened(int featureId, Menu menu){Log.d("D","menuDailog is showde!!");menuDialog.show();return false;//返回false不显示 默认menu.}}


 


转:https://my.oschina.net/u/1773495/blog/306372



推荐阅读
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
author-avatar
mobiledu2502857697
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有