package com.myandroid.test;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;
public class MyMenu extends Activity {
private List<String> titles; //标题栏
private List<List<String>> item_names; //选项名称
private List<List<Integer>> item_images; //选项图标
private MyDefinedMenu myMenu; //弹出菜单
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//弹出菜单标题栏
titles = addItems(new String[]{"菜单一", "菜单二", "菜单三"});
//选项图标
item_images = new ArrayList<List<Integer>>();
item_images.add(addItems(new Integer[]{R.drawable.bag,
R.drawable.bluetooth, R.drawable.earth, R.drawable.email}));
item_images.add(addItems(new Integer[]{R.drawable.map,
R.drawable.news, R.drawable.reader, R.drawable.sound, R.drawable.tape}));
item_images.add( addItems(new Integer[]{R.drawable.telephone,
R.drawable.bluetooth, R.drawable.earth, R.drawable.email}));
//选项名称
item_names = new ArrayList<List<String>>();
item_names.add(addItems(new String[]{"购物", "蓝牙", "游览器", "邮件"}));
item_names.add(addItems(new String[]{"地图", "新闻", "阅读器", "音箱", "录音"}));
item_names.add(addItems(new String[]{"电话", "蓝牙", "阅读器", "邮箱"}));
//创建弹出菜单对象
myMenu = new MyDefinedMenu(this, titles, item_names,
item_images, new ItemClickEvent());
}
/**
* 转换为List<String>
* @param values
* @return
*/
private List<String> addItems(String[] values) {
List<String> list = new ArrayList<String>();
for (String var : values) {
list.add(var);
}
return list;
}
/**
* 转换为List<Integer>
* @param values
* @return
*/
private List<Integer> addItems(Integer[] values) {
List<Integer> list = new ArrayList<Integer>();
for (Integer var : values) {
list.add(var);
}
return list;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("menu");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if(0 == myMenu.currentState && myMenu.isShowing()) {
Log.e("isShowing:", "" + myMenu.isShowing());
myMenu.dismiss(); //对话框消失
myMenu.currentState = 1; //标记状态,已消失
Log.e("MenuState:", "dismissing");
} else {
myMenu.showAtLocation(findViewById(R.id.layout), Gravity.BOTTOM, 0,0);
Log.e("isShowing:", "" + myMenu.isShowing());
myMenu.currentState = 0; //标记状态,显示中
Log.e("MenuState:", "showing");
}
return false; // true--显示系统自带菜单;false--不显示。
}
@Override
public void closeOptionsMenu() {
// TODO Auto-generated method stub
super.closeOptionsMenu();
Log.e("MenuState:", "closeOptionsMenu");
}
@Override
public void onOptionsMenuClosed(Menu menu) {
// TODO Auto-generated method stub
super.onOptionsMenuClosed(menu);
Log.e("MenuState:", "onOptionsMenuClosed");
}
/**
* 菜单选项点击事件
* @author Kobi
*
*/
class ItemClickEvent implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//显示点击的是哪个菜单哪个选项。
Toast.makeText(MyMenu.this, "Menu: " +
titles.get(myMenu.getTitleIndex()) +
" Item: " + item_names.get(myMenu.getTitleIndex()).get(arg2),
Toast.LENGTH_SHORT).show();
myMenu.dismiss(); //菜单消失
myMenu.currentState = 1; //标记状态,已消失
Log.e("MenuState:", "dismissing");
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.e("Activity:", "onPause");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.e("Activity:", "onRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.e("Activity:", "onResume");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
小程序源码 学习相关 之用PopupWindow实现弹出菜单.rar
共42个文件
png:15个
class:12个
java:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 21 浏览量
2023-03-29
20:12:36
上传
评论
收藏 998KB RAR 举报
温馨提示
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
资源推荐
资源详情
资源评论
收起资源包目录
小程序源码 学习相关 之用PopupWindow实现弹出菜单.rar (42个子文件)
MyMenu
.classpath 280B
assets
src
com
myandroid
test
TitleAdatper.java 2KB
BodyAdatper.java 2KB
MyMenu.java 4KB
MyDefinedMenu.java 3KB
res
values
strings.xml 163B
layout
main.xml 274B
drawable
telephone.png 14KB
earth.png 31KB
news.png 28KB
reader.png 19KB
sound.png 22KB
tape.png 14KB
a3.png 33KB
email.png 17KB
set.png 36KB
a2.png 33KB
a1.png 40KB
bag.png 18KB
bluetooth.png 33KB
icon.png 3KB
map.png 24KB
bin
resources.ap_ 342KB
MyMenu.apk 350KB
classes.dex 11KB
com
myandroid
test
MyDefinedMenu.class 4KB
MyDefinedMenu$1.class 2KB
MyMenu$ItemClickEvent.class 2KB
R$string.class 427B
R$layout.class 394B
TitleAdatper.class 2KB
R$id.class 384B
R$attr.class 340B
R$drawable.class 798B
R.class 531B
BodyAdatper.class 2KB
MyMenu.class 5KB
proguard.cfg 1KB
default.properties 362B
.project 842B
AndroidManifest.xml 679B
gen
com
myandroid
test
R.java 1KB
共 42 条
- 1
资源评论
大富大贵7
- 粉丝: 389
- 资源: 8868
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学校课程软件工程常见10道题目以及答案demo
- javaweb新手开发中常见的目录结构讲解
- 新手小白的git使用的手册入门学习demo
- 基于Java观察者模式的info-express多对多广播通信框架设计源码
- 利用python爬取豆瓣电影评分简单案例demo
- 机器人开发中常见的几道问题以及答案demo
- 基于SpringBoot和layuimini的简洁美观后台权限管理系统设计源码
- 实验报告五六代码.zip
- hdw-dubbo-ui基于vue、element-ui构建开发,实现后台管理前端功能.zip
- (Grafana + Zabbix + ASP.NET Core 2.1 + ECharts + Dapper + Swagger + layuiAdmin)基于角色授权的权限体系.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功