zoukankan      html  css  js  c++  java
  • optionMenu-普通菜单使用

    首先结合如下的代码来看

    package com.android.settings;
    
    import android.R.integer;
    import android.app.Fragment;
    import android.util.Log;
    import android.os.Bundle;
    
    import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
    
    import android.view.ContextMenu;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.widget.Switch;
    
    /**
     * Stub class for showing sub-settings; we can't use the main Settings class
     * since for our app it is a special singleTask class.
     */
    public class SubSettings extends Settings2 {
        private final static int DELETE = 0;
        private final static int CANCEL = 1;
    
        @Override
        public boolean onNavigateUp() {
            finish();
            return true;
        }
    
        @Override
        protected boolean isValidFragment(String fragmentName) {
            Log.d("SubSettings", "Launching fragment " + fragmentName);
            return true;
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
        }
    
        
    /* Vanzo:zhangshuli on: Thu, 19 Mar 2015 16:25:55 +0000
     * modify for v5 calculator
        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            menu.add(0, DELETE, 0, "删除");
            menu.add(0, CANCEL, 0, "取消");
            return true;
        }
     */
    // End of Vanzo: zhangshuli
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // TODO Auto-generated method stub
            switch (item.getItemId()) {
            case DELETE:
    
                break;
            case CANCEL:
                break;
            default:
                break;
            }
            return super.onOptionsItemSelected(item);
        }
        public boolean onCreateOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            menu.add(0, DELETE, 0, "删除");
            menu.add(0, CANCEL, 0, "取消");
            return true;
        }
    }

    1.如果我们想要实现一个optionMenu,那么我们必须找到这个activity。然后重写它的方法onCreateOptionsMenu

    onCreateOptionsMenu  添加列表有两种方式

    1)直接在代码里面添加

      public boolean onCreateOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            menu.add(0, DELETE, 0, "删除");
            menu.add(0, CANCEL, 0, "取消");
            return true;
        }

    menu.add()方法有四个参数

    第一个:好像是给menu中的item分组,具体作用不太明白,以后遇到再研究吧

    第二个:这个是item的id,我们通过menu.getitemid()得到的就是这个值

    第三个:这个是我们item的排列位置,0表示默认根据添加顺序来决定位置顺序

    第四个:这个就是列表中显示的内容名称

    2)通过menu 中的xml添加

    在menu目录下,创建一个menu.xml

    <?xml version="1.0" encoding="utf-8"?>
    
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:id="@+id/clear_history"
            android:showAsAction="ifRoom|withText"
            android:icon="@drawable/clear_history"
            android:title="@string/clear_history"/>
    
        <item android:id="@+id/advanced"
            android:showAsAction="ifRoom|withText"
            android:icon="@drawable/advanced"
            android:title="@string/advanced"/>
    
        <item android:id="@+id/basic"
            android:showAsAction="ifRoom|withText"
            android:icon="@drawable/simple"
            android:title="@string/basic"/>
    
    </menu>

    代码中的引用如下

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            super.onCreateOptionsMenu(menu);
    /* Vanzo:zhangshuli on: Thu, 15 Jan 2015 15:59:26 +0000
     * modify for v5 calculator
            getMenuInflater().inflate(R.menu.menu, menu);
     */
    // End of Vanzo: zhangshuli
            return true;
        }   
    
        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            super.onPrepareOptionsMenu(menu);
    
    /* Vanzo:zhangshuli on: Thu, 15 Jan 2015 15:54:31 +0000
     * modify for v5 calculator
            if (!sContext.getResources().getBoolean(R.bool.isTablet)) {
                menu.findItem(R.id.basic).setVisible(!getBasicVisibility());
                menu.findItem(R.id.advanced).setVisible(!getAdvancedVisibility());
            } else {
                menu.findItem(R.id.basic).setVisible(false);
                menu.findItem(R.id.advanced).setVisible(false);
            }
     */
  • 相关阅读:
    做“汉堡包”
    作业3
    作业2结对(升级版)
    作业2结对作业
    练习一(升级版)
    C语言#自动生成四则运算的编程
    css常用属性之 2D角度转换
    css3常用属性之一2D翻转跟3D翻转
    phpcms 替换超过五条数据时的取法
    用phpcms建企业站 在HTML中插入地图
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_menu_150319212.html
Copyright © 2011-2022 走看看