android菜单弹出
㈠ android如何使底部菜单在弹出时显示在tab标签的上方(覆盖掉tab标签)
自己定义一个、布局 然后拦截menu事件 弹出就可以了 自定义menu
步骤:
1) 覆写onCreateOptionsMenu(),返回值改为false
public boolean onCreateOptionsMenu(
Menu menu) {
return false;
}
2) 创建 */
View contentView = LayoutInflater.from(this).inflate(R.layout.menu,
null);
view = contentView.findViewById(R.id.view);
view.setOnClickListener(this);
/**
* 创建弹出的会话框 contentView 是会话框显示的View 宽 ,高
*/
optionMenu = new PopupWindow(contentView, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
3) 显示菜单
mOptionsMenu.showAtLocation(
findViewById(R.id.main),
Gravity.BOTTOM, 0, 0);
㈡ 请教实现android工程中点击菜单弹出一个对话框
说下思路的,既然是弹出对话框,肯定是需要一个dialog,既然这个dialog中的一些属性是自己设定的,肯定是要设置自己自定义的dialog,怎么样才能弹出dialog呢,当你监听点击菜单的事件,记得几贴哟,逻辑很重要的,其他的就要靠你自己的了
android 点击按钮 让菜单从上面弹出
分类: 移动开发/ Android/ 文章
VC/MFC 菜单从绘,点击菜单项目发送自定义消息,弹出afxMessagebox("1");//报错
菜单自绘,点击菜单项目发送自定义消息,弹出afxMessagebox("1");//报错wm_buttondown消息里//自定义消息SendMessage发送自定义消息,报错。换成PostMessage就没事。这是啥原理? 解决方案贴相关
VC/MFC 怎么点击按钮弹出右键菜单,并且按钮保持按上状态
如何点击按钮弹出右键菜单,并且按钮保持按下状态?环境:VS2008 MFC问题:我重绘了按钮,分为3个状态:正常、鼠标进入、鼠标按下;当点击鼠标时会在按钮下面弹出右键菜单。现在问题是右键菜单弹出后,按钮的按下状态就消失了!!请问如何在弹出菜单时使按钮保持按下状态,在菜单消失时按钮状态恢复正常?解决方案你试试看设立一个
VC/MFC MDI怎么实现一个功能,菜单下点击一个按钮弹出一个ClistView
MDI如何实现一个功能,菜单上点击一个按钮弹出一个ClistView?MDI如何实现一个功能,菜单上点击一个按钮弹出一个ClistView?注意是CListView,不是弹对话框。这个功能怎么实现啊??解决方案 CDockablePane ?用VS2008SP1/VS2010建个SDI/MDI工程就看到了
Android Android点按钮弹出系统菜单的方法,该如何处理
Android点按钮弹出系统菜单的方法不点击menu按钮、点击自定义的按钮弹出系统的menu菜单如何实现、菜鸟请教、解决方案http://www.eoeandroid.com/thread-69418-1-1.html 解决方案 调用这句KeyEvent event=new KeyEvent
Delphi 小弟我想点击菜单上面的一个按钮后,直接就类式与按下了PrintScreen键,但是小弟我对键盘消息不是很清楚,大侠
我想点击菜单上面的一个按钮后,直接就类式与按下了PrintScreen键,但是我对键盘消息不是很清楚,请教各位大侠!我是这样实现的: 在按钮的单击事件里面这样写的: SendMessage(Handle,WM_KEYUP,VK_SNAPSHOT,0
Android Android 弹出菜单 - PathButton
Android 弹出菜单 ---- PathButton http://www.oschina.net/p/pathbutton
Android 点击弹出层如何处理点击到上面层
点击弹出层如何避免点击到下面层 。如在原来的列表上 放了一个隐藏显示的ReltionLayout 里面放了一些 选项 选择排序或过滤条件,这时在列表上面弹出显示这个ReltionLayout ,点击这个ReltionLayout 空白处 没有刚好点击
C++ VS2010点击菜单弹出对话框解决方案
VS2010点击菜单弹出对话框在mfc下,新建一个菜单项,然后给它加一个消息处理函数,就是弹出一个对话框的。但是,加一个消息处理函数的前提是这个菜单的Popup属性是false,可是,当popup属性是false的时候,程序运行出来那个菜单项是灰色的,根本点不动,更不用说弹出对话框了。不知道这个情况大家有没有遇到过呢
Web前端 jQuery点击弹出上拉菜单
jQuery点击弹出下拉菜单<title>导航——点击弹出内容</title> <style type="text/css"> .navgation{margin:0;padding:0;list-style-type:none
Android android弹出菜单银屏移动
android弹出菜单屏幕移动有这样一个效果:从屏幕左边弹出一个宽度为w对话框,然后屏幕里面的activity就往左边移动w距离。请问用什么方法可以实现这个方法呢解决方案
ASP.NET 点击按钮弹出网页的有关问题
点击按钮弹出网页的问题请问一下各位,我在网页上放置一个按钮,点击时弹出另一个页面,在我的机子上运行时可以弹出,当把网站打包安装到另一台电脑时,点击按钮,就弹不出网页,这是是么问题,谢谢! 我按钮中的代码是这样的 protected void
VB VB怎么点击网页弹出提示窗口的按钮
VB如何点击网页弹出提示窗口的按钮某网页,点击按钮后会出现一个弹出窗口,在网上找,在CSDN上问,会找出其弹出窗口的文字内容了,但是其上面还有是、否或确定取消一两个按钮,我现在不会点这个按钮,大家支下招哈!解决方案 帮楼主顶一下... 解决方案 你这其实是一个dhtml问题吧,坛子中常有类似的问题的,搜索一下吧
VC/MFC 点击按钮后弹出另一个对话框解决方法
点击按钮后弹出另一个对话框用CDialog类做出一个选择界面:一个按钮 点击此按钮后,会弹出另外的一个对话框按钮(里面可以有输入命令的编辑框,也有可以点击确定的按钮) 请问,该如何实现上述的功能? 如何调用? 请详细些,谢谢!解决方案在拟新建的对话框类中加入Create 调用即可。 解决方案无模式
java Web开发 点击按钮,弹出保存、打开对话框解决方案
点击按钮,弹出保存、打开对话框怎样在html页面上加按钮跟响应实现这个功能?就比如像平时网页上看到的下载,一点就出来个对话框,有打开,保存,取消的,点保存还能选择保存路径的,怎么搞???解决方案你只要把文件链接放到页面上,其他的就是浏览器的事情了。 解决方案探讨你只要把文件链接放到页面上,其他的就是浏览器的事情
ASP.NET 如何点击按钮弹出一个小窗口
怎么点击按钮弹出一个小窗口?我做的是投票系统点击投票按钮弹出一个小窗口 小窗口里面是投票用的!~解决方案先做个隐藏的DIV,点击时再显示 解决方案window.openwindow.showModalDialogDiv第三方控件 解决方案javascript 解决方案传值可以跟url传一样吧。。?UserID
㈢ Android选择条目时下方出现菜单选项
底部是菜单栏,点击就可以查看。
菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),以下说的是创建OptionsMenu。
默认样式是在屏幕底部弹出一个菜单,这个菜单我们就叫他选项菜单OptionsMenu,一般情况下,选项菜单最多显示2排每排3个菜单项,这些菜单项有文字有图标,也被称作Icon Menus,如果多于6项,从第六项开始会被隐藏,在第六项会出现一个More里,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Menus。
㈣ android 怎么实现左侧推出导航菜单
Android左侧推出导航菜单可以让Activity继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计。弹出效果主要使用了translate和alpha样式实现。具体的做法是下列代码:
第一步:设计弹出窗口xml:
Xml代码
<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/pop_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:background="@drawable/btn_style_alert_dialog_background"
>
<Button
android:id="@+id/btn_take_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="20dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="拍照"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>
<Button
android:id="@+id/btn_pick_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="从相册选择"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>
<Button
android:id="@+id/btn_cancel"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="15dip"
android:layout_marginBottom="15dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="取消"
android:background="@drawable/btn_style_alert_dialog_cancel"
android:textColor="#ffffff"
android:textStyle="bold"
/>
</LinearLayout>
</RelativeLayout>
第二步:创建SelectPicPopupWindow类继承PopupWindow:
Java代码
importandroid.app.Activity;
importandroid.content.Context;
importandroid.graphics.drawable.ColorDrawable;
importandroid.view.LayoutInflater;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.view.ViewGroup.LayoutParams;
importandroid.widget.Button;
importandroid.widget.PopupWindow;
{
privateButtonbtn_take_photo,btn_pick_photo,btn_cancel;
privateViewmMenuView;
publicSelectPicPopupWindow(Activitycontext,OnClickListeneritemsOnClick){
super(context);
LayoutInflaterinflater=(LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMenuView=inflater.inflate(R.layout.alert_dialog,null);
btn_take_photo=(Button)mMenuView.findViewById(R.id.btn_take_photo);
btn_pick_photo=(Button)mMenuView.findViewById(R.id.btn_pick_photo);
btn_cancel=(Button)mMenuView.findViewById(R.id.btn_cancel);
//取消按钮
btn_cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//销毁弹出框
dismiss();
}
});
//设置按钮监听
btn_pick_photo.setOnClickListener(itemsOnClick);
btn_take_photo.setOnClickListener(itemsOnClick);
//设置SelectPicPopupWindow的View
this.setContentView(mMenuView);
//设置SelectPicPopupWindow弹出窗体的宽
this.setWidth(LayoutParams.FILL_PARENT);
//设置SelectPicPopupWindow弹出窗体的高
this.setHeight(LayoutParams.WRAP_CONTENT);
//设置SelectPicPopupWindow弹出窗体可点击
this.setFocusable(true);
//设置SelectPicPopupWindow弹出窗体动画效果
this.setAnimationStyle(R.style.AnimBottom);
//实例化一个ColorDrawable颜色为半透明
ColorDrawabledw=newColorDrawable(0xb0000000);
//设置SelectPicPopupWindow弹出窗体的背景
this.setBackgroundDrawable(dw);
//mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
mMenuView.setOnTouchListener(newOnTouchListener(){
publicbooleanonTouch(Viewv,MotionEventevent){
intheight=mMenuView.findViewById(R.id.pop_layout).getTop();
inty=(int)event.getY();
if(event.getAction()==MotionEvent.ACTION_UP){
if(y<height){
dismiss();
}
}
returntrue;
}
});
}
}
第三步:编写MainActivity类实现测试:
Java代码
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.TextView;
{
//自定义的弹出框类
;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextViewtv=(TextView)this.findViewById(R.id.text);
//把文字控件添加监听,点击弹出自定义窗口
tv.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//实例化SelectPicPopupWindow
menuWindow=newSelectPicPopupWindow(MainActivity.this,itemsOnClick);
//显示窗口
menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main),Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0);//设置layout在PopupWindow中显示的位置
}
});
}
//为弹出窗口实现监听类
=newOnClickListener(){
publicvoidonClick(Viewv){
menuWindow.dismiss();
switch(v.getId()){
caseR.id.btn_take_photo:
break;
caseR.id.btn_pick_photo:
break;
default:
break;
}
}
};
}
上述的代码实现了从底部弹出,也可以根据PopupWindow类设置从左下部弹出。
Android的对话框有两种:PopupWindow和AlertDialog。它们的不同点在于:
AlertDialog的位置固定,而PopupWindow的位置可以随意
AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的
PopupWindow的位置按照有无偏移分,可以分为偏移和无偏移两种;按照参照物的不同,可以分为相对于某个控件(Anchor锚)和相对于父控件。具体如下
showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移
showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移
showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移
㈤ android点击屏幕弹出底部隐藏的菜单栏
1、点击屏幕可重写ontouchEvent方法。监听。
2、弹出菜单、消失,可随便写个布局。设置他visivible和invisible显示隐藏即可。也可用dialog、popwindow之类的对话框调用show方法和dismiss方法。
3、过几秒,可用timer定时器,也可用hander延时发消息的方法来做。handler.sendMessageDelay(5000)大概这么个方法,括号里是毫秒。5000就是5秒。然后handler接收到消息设置你的控件隐藏或者dismiss.
㈥ android 点击按钮时显示菜单应怎样实现
点击button弹出对话框菜单
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.DialogInterface;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
{
privateButtonbutton;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewarg0){
newAlertDialog.Builder(choice.this)
.setTitle("choice")
.setItems(R.array.str_body,newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacearg0,intarg1){
//TODOAuto-generatedmethodstub
String[]aryshop=getResources().getStringArray(R.array.str_body);
newAlertDialog.Builder(choice.this)
.setMessage(aryshop[arg1])
.setNegativeButton("ok",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacearg0,intarg1){
//TODOAuto-generatedmethodstub
}
}).show();
}
}).show();
//TODOAuto-generatedmethodstub
}});
}
}
菜单项
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stringname="hello">HelloWorld,choice!</string>
<stringname="app_name">ChoiceMenu</string>
<stringname="strtitle">按我选择:</string>
<stringname="str">你选择的是:</string>
<arrayname="str_body">
<item>选项1</item>
<item>选项2</item>
<item>选项3</item>
<item>选项4</item>
<item>选项5</item>
<item>选项6</item>
</array>
</resources>
㈦ Android 仿微信长按列表弹出PopupMenu菜单栏
弹出效果如下图所示
可以使用setGravity()方法来指定弹出窗口与anchor视图的对齐方式,例如修改对齐方式为Gravity.END
使用起来还是比较简单的,但是好像大部分项目的需求是PopupMenu在用户点击的位置弹出,然而PopupMenu并没有提供在指定坐标弹出的方法,所以只能咱们自己来实现咯!
想让PopupMenu在指定弹出位置,首先咱们得先了解show()方法是如何让PopupMenu弹出来的,所以只能去阅读源码了(Read The Fucking Source Code~)。
PopupMenu的show()方法很简单,直接把任务转给MenuPopupHelper来处理,处理流程:show() -> tryShow() -> showPopup(0, 0, false, false);
我们可以看到showPopup方法内有两个参数int xOffset、int yOffset,根据注释可以知道这就是相对于anchor视图的坐标值。所以如果要指定PopupMenu的弹出位置,MenuPopupHelper应该这样处理弹出逻辑:show(int x, int y) -> tryShow(int x, int y) -> showPopup(x, y, true, true)。
但是由于PopupMenu无法调用到MenuPopupHelper的show(int x, int y) 方法,因此我们只能使用反射机制绕过PopupMenu,直接调用MenuPopupHelper的show(int x, int y)方法。
到此为止,已经有了大致的解决思路,接下来看看具体实现。
最终弹出效果如下图所示
㈧ Android 模拟器中按菜单Menu键弹出菜单项MenuItem,点击菜单项中的“退出”没反应
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
/*
*
* add()方法的四个参数,依次是:
*
* 1、组别,如果不分组的话就写Menu.NONE,
*
* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单
*
* 3、顺序,那个菜单现在在前面由这个参数的大小决定
*
* 4、文本,菜单的显示文本
*/
//图标文件实现android系统自带的文件
menu.add(Menu.NONE, Menu.FIRST + 1, 1, "保存").setIcon(android.R.drawable.ic_menu_save);
menu.add(Menu.NONE, Menu.FIRST + 2, 2, "添加").setIcon(android.R.drawable.ic_menu_add);
// menu.add(Menu.NONE, Menu.FIRST + 3, 3, "删除").setIcon(android.R.drawable.ic_menu_delete);
// menu.add(Menu.NONE, Menu.FIRST + 4, 4, "发送").setIcon(android.R.drawable.ic_menu_send);
menu.add(Menu.NONE, Menu.FIRST + 5, 5, "帮助").setIcon(android.R.drawable.ic_menu_help);
menu.add(Menu.NONE, Menu.FIRST + 6, 6, "退出").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case Menu.FIRST + 1:
Toast.makeText(WqtMainActivity.this, "保存菜单被点击了!", Toast.LENGTH_LONG).show();
//intent = new Intent(MenuActivity.this,Myhandler.class);
//startActivity(intent);
//overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
break;
case Menu.FIRST + 2:
Toast.makeText(WqtMainActivity.this, "添加菜单被点击了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 3:
Toast.makeText(WqtMainActivity.this, "删除菜单被点击了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 4:
Toast.makeText(WqtMainActivity.this, "发送菜单被点击了!", Toast.LENGTH_LONG).show();
//通知在状态栏显示的图标
//notification.icon = android.R.drawable.ic_lock_silent_mode_off;
//通知的内容
//notification.tickerText = "发送菜单被点击了!";
//通知时发出的声音
//notification.defaults = Notification.DEFAULT_SOUND;
//intent = new Intent(MenuActivity.this,mNotification.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
//pendindIntent = PendingIntent.getActivity(MenuActivity.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
//notification.setLatestEventInfo(MenuActivity.this, "按钮", "发送按钮", pendindIntent);
//notificationManager.notify(913, notification);
break;
case Menu.FIRST + 5:
Toast.makeText(WqtMainActivity.this, "帮助菜单被点击了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
AlertDialog alertDialog = new AlertDialog.Builder(WqtMainActivity.this)
.setTitle("提示!")
.setIcon(R.drawable.ask)
.setMessage("您确定要退出系统吗?")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
dialog.cancel(); //提示对话框关闭
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel(); //关闭对话框
}
}).create();
alertDialog.show();
break;
}
return super.onMenuItemSelected(featureId, item);
}
㈨ android如何长按跳出菜单,怎么才能不用onclick方法直接用onlongclick
之前做按钮的点击事件一直没有注意一些细节,今天做了一个按钮需要有点击和长点击触发不同效果,直接让Activity implements OnClickListener, OnLongClickListener然后添加了相应的处理函数。
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return false;
}
没多做考虑,直接在函数内添加了我想要的实现。在一次不经意的测试中发现,在我的按钮点击时间中有一个临界值,当我单下按钮的时间等于这个临界值的时候,点击事件和长点击事件会同时触发。点击事件自然是没什么问题,导致这个问题一定是长点击事件出了问题,回过头仔细看长点击事件的方法,发现它和点击事件基本没有区别,唯一的区别就是多了一个返回值。那么这个返回值究竟有什么用呢,查了一下开发文档,对这个方法描述如下:
Public Methods
public abstract boolean onLongClick ( View v)
Added in API level 1
Called when a view has been clicked and held.
Parameters
v
The view that was clicked and held.
Returns
true if the callback consumed the long click, false otherwise.
说明了如果返回值为true的话这个点击事件会被长点击独占,否则相反。
这下就可以理解了为什么之前的点击会同时触发两个点击事件。
将onLongClick的返回值设置为true,即可避免这个问题的发生。