1. android怎么控制选项菜单onCreateOptionsMenu的位置
菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),以下说的是创建OptionsMenu
一、概述
public boolean onCreateOptionsMenu(Menu menu):使用此方法调用OptionsMenu。
public boolean onOptionsItemSelected(MenuItem item):选中菜单项后发生的动作。
public void onOptionsMenuClosed(Menu menu):菜单关闭后发生的动作。
public boolean onPrepareOptionsMenu(Menu menu):选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单。
public boolean onMenuOpened(int featureId, Menu menu):单打开后发生的动作。
二、默认样式
默认样式是在屏幕底部弹出一个菜单,这个菜单我们就叫他选项菜单OptionsMenu,一般情况下,选项菜单最多显示2排每排3个菜单项,这些菜单项有文字有图标,也被称作Icon Menus,如果多于6项,从第六项开始会被隐藏,在第六项会出现一个More里,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Menus。下面介绍。
1.main.xml
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextViewandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="请点击Menu键显示选项菜单"
android:id="@+id/TextView02"/>
</LinearLayout>
2。重载onCreateOptionsMenu(Menu menu)方法
重载onCreateOptionsMenu(Menu menu)方法,并在此方法中添加菜单项,最后返回true,如果false,菜单则不会显示。
(Menumenu)
@Override
(Menumenu){
/*
*
*add()方法的四个参数,依次是:
*
*1、组别,如果不分组的话就写Menu.NONE,
*
*2、Id,这个很重要,Android根据这个Id来确定不同的菜单
*
*3、顺序,那个菜单现在在前面由这个参数的大小决定
*
*4、文本,菜单的显示文本
*/
menu.add(Menu.NONE,Menu.FIRST+1,5,"删除").setIcon(
android.R.drawable.ic_menu_delete);
//setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以
//android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE,Menu.FIRST+3,6,"帮助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE,Menu.FIRST+4,1,"添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+5,4,"详细").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE,Menu.FIRST+6,3,"发送").setIcon(
android.R.drawable.ic_menu_send);
returntrue;
}
3。为菜单项注册事件
使用onOptionsItemSelected(MenuItem item)方法为菜单项注册事件
(MenuItemitem)
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST+1:
Toast.makeText(this,"删除菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+2:
Toast.makeText(this,"保存菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+3:
Toast.makeText(this,"帮助菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+4:
Toast.makeText(this,"添加菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+5:
Toast.makeText(this,"详细菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+6:
Toast.makeText(this,"发送菜单被点击了",Toast.LENGTH_LONG).show();
break;
}
returnfalse;
}
4.完整代码
packagecom.android.menu;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.widget.Toast;
{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
(Menumenu){
/*
*
*add()方法的四个参数,依次是:
*
*1、组别,如果不分组的话就写Menu.NONE,
*
*2、Id,这个很重要,Android根据这个Id来确定不同的菜单
*
*3、顺序,那个菜单现在在前面由这个参数的大小决定
*
*4、文本,菜单的显示文本
*/
menu.add(Menu.NONE,Menu.FIRST+1,5,"删除").setIcon(
android.R.drawable.ic_menu_delete);
//setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以
//android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE,Menu.FIRST+3,6,"帮助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE,Menu.FIRST+4,1,"添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+5,4,"详细").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE,Menu.FIRST+6,3,"发送").setIcon(
android.R.drawable.ic_menu_send);
returntrue;
}
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST+1:
Toast.makeText(this,"删除菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+2:
Toast.makeText(this,"保存菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+3:
Toast.makeText(this,"帮助菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+4:
Toast.makeText(this,"添加菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+5:
Toast.makeText(this,"详细菜单被点击了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+6:
Toast.makeText(this,"发送菜单被点击了",Toast.LENGTH_LONG).show();
break;
}
returnfalse;
}
@Override
publicvoidonOptionsMenuClosed(Menumenu){
Toast.makeText(this,"选项菜单关闭了",Toast.LENGTH_LONG).show();
}
@Override
(Menumenu){
Toast.makeText(this,
"选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单",
Toast.LENGTH_LONG).show();
//如果返回false,此方法就把用户点击menu的动作给消费了,onCreateOptionsMenu方法将不会被调用
returntrue;
}
}
5.运行效果
2. Android的程序,怎样同时实现动态添加ListView条目和长按条目弹出菜单选择是否删除功能
这个listview动态增减很简单的,你从适配器的数据着手,就是你遍历的数据,然后增的话在数据中加多一条数据,然后adapter.notifiyDataSetChanged();长按弹出菜单就是listview的那个长按监听事件,好像是什么OnItemLong什么的,你找下,在那里调用菜单
3. 安卓手机动态壁纸怎么设置 android手机动态
手机设置动态壁纸方法:待机画面-菜单键-设置墙纸-主屏-动态墙纸(根据系统自带的动态壁纸进行选择),您可以单独下载APK格式的动态壁纸软件。
4. Android可以实现动态加载菜单吗
动态加载菜单,你可以使用addview的形式,动态添加view
5. Android 菜单列表用什么做好,类似图中的效果
1)最外围的是一个Activity,顶部包含了一个View的容器,这个容器主要是装载ToggleButton来实现诸如美团里面的“美食,全城,理我最近,刷选”这一行。这一行一点就会弹出对应的下来菜单。
2)下拉菜单是如何实现的呢?,这里我们利用了PopupWindow来实现这一弹出式窗口。然后我们在弹出式窗口里面再定义我们的下来列表项,是单列还是二级菜单,都是由里面来定。
3)不同的菜单,需要一级或者需要二级,在这里根据我的需求而变动。我们在PopupWindow上面加一个自定义的LeftView,或者是MiddleView,RightView。主要是一个ToggleButton,你弹出一个窗口,你就定制一个窗口。
3)视图里面嵌入ListView,就形成了列表项。
6. 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>
7. android 怎么让菜单浮动
MapView外部用RelativeLayout或者FrameLayout包裹,然后正常添加浮动按钮。 在FrameLayout中定义一个MapView,然后再定义一个Button,位置放到你想要的位置。 一个显示地图的视图(View)。它负责从服务端获取地图数据。它将会捕捉屏幕触控手势事件。 使用这个类必须按照它的生命周期进行操控,你必须参照以下方法onCreate(Bundle)、 onResume()、onPause()、onDestroy()。等声明周期函数。在使用地图组件之前请确保已经调用了 SDKInitializer.initialize(Context) 函数以提供全局 Context 信息。
8. android app系统菜单 图标动态改变,怎么判断当前是哪个图标
我们知道,我们每写一个
Activity就要在AndroidManifest进行配置一下,我们才可以正常的启动它,除此之外,我们还可以对它设置一个别名,也就是用<activity-alias>标签,这个标签的属性,和<activity>的属性一致,可以做一个简单的分析:
?
1
2
android:icon="@mipmap/app_logo"
android:label="@string/app_name"
上面的两个属性是用来设置图标和标签。
9. android菜单动态创建问题,String [] str里有六个String.在onCreateO
menu.add(int groupId, int itemId, int order, CharSequence title);
groupId为组ID,这里用不到,所以设置成Menu.NONE
itemId为项ID,当命令被点击时,要区别点击的命令,所以设置以不同的ID
order为排列次序,值越小排的越前(不能为负数),这里按添加顺序排,所以也设置为Menu.NONE
title为要显示的命令名称
10. Android超简单实现动画悬浮菜单
<meta charset="utf-8">
以(x,y)为中心,中心到顶点的距离为a,degree为旋转的角度,正N边形的顶点坐标公式为:
X=a * cos(degree)+x
Y=a * sin(degree)+y
这个公式是用来计算位移位置的,之前的一篇蛛网效果也主要用的是它( https://www.jianshu.com/p/26e5a2465fae )
https://github.com/myml666/CustomDemo