Menu

来源:互联网 发布:大通医药软件 编辑:程序博客网 时间:2024/06/03 19:30

1.SubMenu

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <EditText        android:id="@+id/edittext"        android:layout_width="match_parent"        android:layout_height="200sp"        android:text="" /></RelativeLayout>
package com.example.android_menu;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.widget.EditText;
package com.example.android_menu;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.widget.EditText;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);EditText editText=(EditText) findViewById(R.id.edittext);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.SubMenu fontMenu=menu.addSubMenu("字体大小");fontMenu.setIcon(R.drawable.ic_launcher);fontMenu.setHeaderIcon(R.drawable.ic_launcher);fontMenu.setHeaderTitle("选择字体大小");fontMenu.add(0, 0x111, 0, "10号字体");fontMenu.add(0, 0x112, 0, "12号字体");fontMenu.add(0, 0x113, 0, "14号字体");menu.add(0, 99, 0, "普通菜单项");SubMenu colorMenu=menu.addSubMenu("字体颜色");colorMenu.setIcon(R.drawable.ic_launcher);colorMenu.setHeaderIcon(R.drawable.ic_launcher);colorMenu.setHeaderTitle("选择文字颜色");colorMenu.add(0, 0x116, 0, "红色");colorMenu.add(0, 0x117, 0, "绿色");colorMenu.add(0, 0x118, 0, "蓝色");MenuItem item=colorMenu.add("跳转到另一个activity");item.setIntent(new Intent(MainActivity.this,OtherActivity.class));return super.onCreateOptionsMenu(menu);}/** * 添加响应事件 * @param mi * @return */public boolean onOptionItemSelected(MenuItem mi){switch (mi.getItemId()) {case 0x111:break;default:break;}return false;}}

2.ContextMenu

package com.example.android_contextmenu;import android.os.Bundle;import android.app.Activity;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button=(Button) findViewById(R.id.button);registerForContextMenu(button);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubmenu.add(0, 0x111, 0, "红");menu.add(0, 0x112, 0, "绿");menu.add(0, 0x113, 0, "蓝");//设置为单选项menu.setGroupCheckable(0, true, true);menu.setHeaderIcon(R.drawable.ic_launcher);menu.setHeaderTitle("选择背景色");}/* (non-Javadoc) * 菜单项响应事件 * @see android.app.Activity#onContextItemSelected(android.view.MenuItem) */@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case 0x111:break;default:break;}return true;}}

3.用xml编写菜单选项,包括一般菜单和上下文菜单

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="显示上下文菜单" />

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:icon="@drawable/ic_launcher"        android:title="字体格式">        <menu>            <item                android:id="@+id/font_10"                android:title="10号字体"/>            <group>                <item                    android:id="@+id/font_12"                    android:title="12号字体"/>                <item                    android:id="@+id/font_14"                    android:title="14号字体"/>            </group>        </menu>    </item>    <item        android:id="@+id/usual"        android:title="普通菜单">    </item></menu>
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" >    <group        android:id="@+id/group1"        android:checkableBehavior="single" >        <item            android:id="@+id/item1"            android:title="红色"            android:alphabeticShortcut="r"            >        </item>        <item             android:id="@+id/item2"            android:title="绿色"            android:alphabeticShortcut="g"            >        </item>        <item             android:id="@+id/item3"            android:title="蓝色"            android:alphabeticShortcut="b"            >        </item>    </group></menu>

package com.example.android_xmlmenu;import android.os.Bundle;import android.app.Activity;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button=(Button) findViewById(R.id.button);registerForContextMenu(button);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.MenuInflater menuInflater=new MenuInflater(MainActivity.this);menuInflater.inflate(R.menu.mymenu, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubMenuInflater menuInflater=new MenuInflater(MainActivity.this);menuInflater.inflate(R.menu.contextxml, menu);menu.setHeaderIcon(R.drawable.ic_launcher);menu.setHeaderTitle("请选择颜色");super.onCreateContextMenu(menu, v, menuInfo);}/* (non-Javadoc) * 处理响应 * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem) */@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubreturn super.onOptionsItemSelected(item);}/* (non-Javadoc) * 处理上下文菜单响应 * @see android.app.Activity#onContextItemSelected(android.view.MenuItem) */@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubreturn super.onContextItemSelected(item);}}

4.PopupMenu

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" >    <group android:id="@+id/group1" >        <itemandroid:id="@+id/item1"android:title="文本格式"            >        </item>        <item             android:id="@+id/item2"            android:title="字体颜色">        </item>    </group></menu>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <Button        android:id="@+id/button"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="PopupMenu菜单" /></RelativeLayout>

package com.example.android_popupmenu;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.PopupMenu;import android.widget.Toast;import android.widget.PopupMenu.OnMenuItemClickListener;@SuppressLint("NewApi")public class MainActivity extends Activity {private Button button;private PopupMenu popup;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubonPopupButtonClick();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}public void onPopupButtonClick() {popup = new PopupMenu(MainActivity.this, button);getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem arg0) {// TODO Auto-generated method stubswitch (arg0.getItemId()) {case R.id.item1:Toast.makeText(MainActivity.this, "点击了菜单", 1).show();break;default:break;}return true;}});popup.show();}}




                                             
0 0
原创粉丝点击