热门标签 | 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



推荐阅读
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
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社区 版权所有