zoukankan      html  css  js  c++  java
  • Android menu+ anctionbar

    一、概述

         Menu,简单来理解就是当你按下手机的“menu”键时所弹出来的窗体,它被广泛应用着,差点儿在每一个应用中都有它的身影。


    二、要求

        用两种方式实现菜单功能。


    三、实现

         新建projectMyMenu,改动/res/layout/main.xml文件,主要是改动了里面的TextView,完整的main.xml文件例如以下:

    复制代码
     1 <?

    xml version="1.0" encoding="utf-8"?>
    2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3 android:layout_width="fill_parent"
    4 android:layout_height="fill_parent"
    5 android:orientation="vertical" >
    6
    7 <TextView
    8 android:layout_width="fill_parent"
    9 android:layout_height="wrap_content"
    10 android:text="这是一个菜单測试程序"
    11 android:gravity="center_horizontal"
    12 />
    13
    14 </LinearLayout>

    复制代码

    接着。改动MyMenuActivity.java文件,主要是覆写了onCreateOptionsMenu()和onOptionsItemSelected()这两个方法,在onCreateOptionsMenu()方法里添加7个选项。比較简单。完整的内容例如以下:

     

    复制代码
     1 package com.nan.menu;
    2
    3 import android.app.Activity;
    4 import android.os.Bundle;
    5 import android.view.Menu;
    6 import android.view.MenuItem;
    7 import android.widget.Toast;
    8
    9 public class MyMenuActivity extends Activity
    10 {
    11 /** Called when the activity is first created. */
    12 @Override
    13 public void onCreate(Bundle savedInstanceState)
    14 {
    15 super.onCreate(savedInstanceState);
    16 setContentView(R.layout.main);
    17
    18 }
    19
    20 @Override
    21 //当"menu"button被按下时运行这个函数
    22 public boolean onCreateOptionsMenu(Menu menu)
    23 {
    24 menu.add(0, 0, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    25 menu.add(0, 1, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    26 menu.add(0, 2, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    27 menu.add(0, 3, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    28 menu.add(0, 4, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    29 menu.add(0, 5, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    30 menu.add(0, 6, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star);
    31
    32 return super.onCreateOptionsMenu(menu);
    33 }
    34
    35
    36 //当菜单中某项被选中时运行这个函数
    37 @Override
    38 public boolean onOptionsItemSelected(MenuItem item)
    39 {
    40 switch(item.getItemId())
    41 {
    42 case 0:displayToast("第0项被选中");break;
    43 case 1:displayToast("第1项被选中");break;
    44 case 2:displayToast("第2项被选中");break;
    45 case 3:displayToast("第3项被选中");break;
    46 case 4:displayToast("第4项被选中");break;
    47 case 5:displayToast("第5项被选中");break;
    48 case 6:displayToast("第6项被选中");break;
    49
    50 }
    51
    52 return super.onOptionsItemSelected(item);
    53 }
    54
    55 /*
    56 @Override
    57 public boolean onCreateOptionsMenu(Menu menu)
    58 {
    59 MenuInflater inflater = getMenuInflater();
    60 inflater.inflate(R.layout.menu, menu); menu.add(0,0,Menu.NONE, "1").setIcon(R.drawable.ic_launcher);//自己增加其它东西
    61 return super.onCreateOptionsMenu(menu);
    62 }
    63
    64 @Override
    65 public boolean onOptionsItemSelected(MenuItem item)
    66 {
    67 int item_id = item.getItemId();
    68
    69 switch(item_id)
    70 {
    71 case R.id.mlist://自定义
    72 {}
    73 }
    74 return super.onOptionsItemSelected(item);
    75 }
    76 */
    77
    78
    79
    80 //显示Toast函数
    81 private void displayToast(String s)
    82 {
    83 Toast.makeText(this, s, Toast.LENGTH_LONG).show();
    84 }
    85
    86 }
    复制代码

    能够用把凝视去掉然后把代码换成XML来构建menu



    名字叫做menu

    1. <menu xmlns:android="http://schemas.android.com/apk/res/android" >  
    2.     <!-- Search, should appear as action button -->  
    3.     <item android:id="@+id/action_search"  
    4.           android:icon="@drawable/ic_action_search"  
    5.           android:title="@string/action_search"  
    6.           android:showAsAction="ifRoom" />  
    7.     <!-- Settings, should always be in the overflow -->  
    8.     <item android:id="@+id/action_settings"  
    9.           android:title="@string/action_settings"  
    10.           android:showAsAction="never" />  
    11. </menu>  


    不知道为什么图标出不来。仅仅能在列表里表示。

    PS:没有图标是仅仅能在list里面的不能再actionbar里面的



  • 相关阅读:
    jQuery插件开发精品教程,让你的jQuery提升一个台阶
    Elasticsearch 更新和删除文档的过程
    Elasticsearch集群健康状态显示为yellow排查
    Golang官方包依赖管理工具 go mod
    Golang几种常用配置文件使用方法总结
    SQL高级功能:窗口函数
    MySQL经典50题
    MySQL 性能调优和系统资源优化解决方案
    【排序算法】堆排序的推导及实现
    增长策略:如何用AB测试进行活动评估及优化?
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6706135.html
Copyright © 2011-2022 走看看