用户界面1-(菜单)

来源:互联网 发布:华为quik是什么软件 编辑:程序博客网 时间:2024/05/16 15:09

Menu:

一.使用资源文件构建菜单
二.使用代码创建菜单
2.1:选项菜单
2.2:上下文菜单
2.3:子菜单
一.使用资源文件构建菜单
1.Res/Menu下创建资源文件file_menu.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:icon="@drawable/file"        android:title="File"        android:id="@+id/filemenu">        <menu>            <group                android:id="@+id/noncheckable_group"                android:checkableBehavior="none" >                <item                    android:id="@+id/newFile"                    android:alphabeticShortcut="n"                    android:title="New">                </item>                <item                    android:id="@+id/openFile"                    android:alphabeticShortcut="o"                    android:title="Open">                </item>                <item                    android:id="@+id/saveFile"                    android:alphabeticShortcut="s"                    android:title="Save">                </item>            </group>        </menu>    </item>    <item        android:icon="@drawable/edit"        android:title="Edit">        <menu>            <group                android:id="@+id/edit_group"                android:checkableBehavior="single" >                <item                    android:id="@+id/cut"                    android:title="Cut">                </item>                <item                    android:id="@+id/copy"                    android:title="Copy">                </item>                <item                    android:id="@+id/past"                    android:title="Past">                </item>            </group>        </menu>    </item>    <item        android:title="Help"        android:icon="@drawable/help">        <menu>            <group android:id="@+id/help_group" >                <item                    android:id="@+id/about"                    android:title="About">                </item>                <item                    android:id="@+id/exit"                    android:title="Exit">                </item>            </group>        </menu>    </item></menu> <!-- item 菜单项 --><!-- group 菜单组 --><!-- alphabeticShortcut  字母快捷方式 --><!-- checkableBehavior   选择行为,单选还是多选 -->
package com.huc.ch03.menu;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.widget.Toast;import com.example.chapter03_resource.R;public class TestMenuActivity extends Activity {private MenuInflater mi;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.test_menu);mi = new MenuInflater(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubmi.inflate(R.menu.file_menu, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case R.id.filemenu:Toast.makeText(this, "file", Toast.LENGTH_SHORT).show();break;case R.id.about:aboutAlert("演示的是如何使用XML菜单紫云啊来定义菜单");break;case R.id.exit:exitAlert("真的要退出吗?");break;default:break;}return super.onOptionsItemSelected(item);}private void exitAlert(String string) {// TODO Auto-generated method stubAlertDialog.Builder builder=new AlertDialog.Builder(this);builder.setMessage(string).setCancelable(false).setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfinish();}}).setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubreturn;}});builder.create().show();}private void aboutAlert(String string) {// TODO Auto-generated method stubAlertDialog.Builder builder=new AlertDialog.Builder(this);builder.setMessage(string).setCancelable(true).setPositiveButton("确定",new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});builder.create().show();}}
二.使用代码创建菜单
2.1:选项菜单,子菜单
重写onCreateOptionsMenu和onOptionsItemSelected方法
2.2:上下文菜单(长按myTV控件)
重写onCreateContextMenu和onContextItemSelected方法
package com.example.mychapter04_ui_menu01;import org.w3c.dom.Text;import android.os.Bundle;import android.app.Activity;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.TextView;public class MainActivity extends Activity {private static final int ITEM1 = Menu.FIRST;private static final int ITEM2 = Menu.FIRST+1;private TextView myTV;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);myTV=(TextView)this.findViewById(R.id.TextView01);registerForContextMenu(myTV);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubmenu.add(0, ITEM1, 1, "上下文菜单1");menu.add(0, ITEM2, 0, "上下文菜单0");super.onCreateContextMenu(menu, v, menuInfo);}@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case ITEM1:setTitle("选项菜单1");break;case ITEM2:setTitle("选项菜单0");break;default:break;}return true;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.SubMenu file= menu.addSubMenu("选项菜单1");SubMenu edit=menu.addSubMenu("选项菜单0");file.add(0, ITEM1, 0, "新建");file.add(0, ITEM1, 0, "打开");/*menu.add(0, ITEM1, 1, "选项菜单1");menu.add(0, ITEM2, 0, "选项菜单0");*/return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case ITEM1:setTitle("选项菜单1");break;case ITEM2:setTitle("选项菜单0");break;default:break;}return true;}}

<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" >    <TextView        android:id="@+id/TextView01"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:text="测试上下文菜单(改变文字背景色)" >    </TextView></RelativeLayout>


用户界面1-(菜单1)

用户界面1-(菜单2)





0 0
原创粉丝点击