• ANDROID笔记: ActionBar(二)之ActionBar Menu


    主类:

    package com.example.android_actionbar;
    
    import android.annotation.SuppressLint;
    import android.app.ActionBar;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    @SuppressLint("NewApi")
    public class ActionBarActivity extends Activity {
        private ActionBar actionBar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_actionbar);
            // 获取actionbar
            actionBar = getActionBar();
    
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // 加载Menu
            MenuInflater menuInflater = new MenuInflater(ActionBarActivity.this);
            menuInflater.inflate(R.menu.mymenu, menu);
            // 得到搜索的view
            View view = menu.findItem(R.id.se).getActionView();
            final EditText editText = (EditText) view.findViewById(R.id.edittext);
            Button button = (Button) view.findViewById(R.id.searchbtn);
            // 按钮的点击事件响应
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(getApplicationContext(),
                            editText.getText().toString(), Toast.LENGTH_SHORT)
                            .show();
    
                }
            });
            return super.onCreateOptionsMenu(menu);
        }
    
        /**
         * 布局文件中定义的按钮动作函数
         * 
         * @param view
         */
        public void btnclick(View view) {
            switch (view.getId()) {
            case R.id.button1:
                actionBar.show();
                actionBar.setDisplayShowHomeEnabled(true);
                actionBar.setHomeButtonEnabled(true);
                actionBar.setDisplayShowTitleEnabled(true);
    
                break;
            case R.id.button2:
                // actionBar.hide();//将整个bar隐藏
                // 隐藏APP的icon和name
                actionBar.setDisplayShowHomeEnabled(false);
                actionBar.setHomeButtonEnabled(false);
                actionBar.setDisplayShowTitleEnabled(false);
                break;
            }
        }
    }

    /res/menu/mymenu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:id="@+id/se"
            android:actionLayout="@layout/search"
            android:showAsAction="always"
            android:title="搜索"/>
        <item
            android:id="@+id/fontsize"
            android:icon="@drawable/menu"
            android:showAsAction="always|withText"
            android:title="设置字体大小">
            <menu>
    
                <!-- 单选 -->
                <group android:checkableBehavior="single" >
                    <item
                        android:id="@+id/font10sp"
                        android:title="10sp">
                    </item>
                    <item
                        android:id="@+id/font20sp"
                        android:title="20sp">
                    </item>
                    <item
                        android:id="@+id/font30sp"
                        android:title="30sp">
                    </item>
                </group>
            </menu>
        </item>
    </menu>

    /res/layout/search.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
        <EditText
            android:id="@+id/edittext"
            android:layout_width="100dp"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/searchbtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="搜索" />
    
    </LinearLayout>

    主类布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="btnclick"
            android:text="展示" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="btnclick"
            android:text="隐藏" />
    
    </LinearLayout>

    PS:

    android:actionLayout="@layout/search" 连接到另一个布局文件
    android:showAsAction="always"            永久显示在ActionBar上

    在menu布局xml文件中设置 android:showAsAction="always|withText"或android:showAsAction="always" 可以使item显示在actionbar上

    当android:showAsAction="never"时,item不显示在item上

  • 相关阅读:
    ubuntu 10.04 install network bcm4418
    linux vi commend
    api
    ubuntu安装jdk
    maven常用命令介绍
    ubuntu 10.04 install oracle11g
    putty中文乱码问题解决
    SCP不需要密码
    java command
    Ubuntu vsftpd 安装配置
  • 原文地址:https://www.cnblogs.com/afluy/p/3411102.html
Copyright © 2020-2023  润新知