Android菜单optionMenu(选择菜单)的实现

来源:互联网 发布:多益网络校招笔试题目 编辑:程序博客网 时间:2024/05/21 09:57


        optionMenu(选择菜单)是Android几种菜单中最为常见的一种,具体实现对于新手来说也非常容易上手,这里就optionMenu的实现大体描述如下:

       Java代码中动态设置:

              复写Activity父类中的onCreateOptionMenu(Menu menu)方法,然后通过Menu的add方法来添加菜单进去。

       通过xml静态设置 :

             使用菜单布局填充器泵和菜单布局相关联.

      设置菜单项点击事件:onOptionsItemSelected(MenuItem item)

     OptionMenu的简单实现代码如下:

            java代码中:

public class MainActivity extends AppCompatActivity {    private TextView mTextView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        mTextView = (TextView) findViewById(R.id.optionMenuText);    }    //重载onCreateOptionsMenu(Menu menu)方法,    //并在此方法中添加菜单项,最后返回true,如果false,菜单则不会显示    @Override    public boolean onCreateOptionsMenu(Menu menu) {        //1.布局中添加        getMenuInflater().inflate(R.menu.optionmenu_item,menu);        /**         * add()方法的四个参数,依次是:         1、组别,如果不分组的话就写Menu.NONE,         2Id,这个很重要,Android根据这个Id来确定不同的菜单         3、顺序,那个菜单现在在前面由这个参数的大小决定         4、文本,菜单的显示文本*/        //2.Java代码中添加        menu.add(Menu.NONE,1,Menu.NONE,"java代码中添加OptionMenu1");        menu.add(Menu.NONE,2,Menu.NONE,"java代码中添加Optionmenu2");        return true;    }    //OptionMenu菜单监听事件    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {            case 1:                String str1 = "您点击了java代码中添加OptionMenu1";                Toast.makeText(MainActivity.this,str1, Toast.LENGTH_SHORT).show();                break;            case 2:                String str2 = "您点击了java代码中添加OptionMenu1";                Toast.makeText(MainActivity.this,str2, Toast.LENGTH_SHORT).show();                break;            case R.id.option_color:                mTextView.setTextColor(Color.RED);                break;            case R.id.font_san:                mTextView.setTextSize(mTextView.getTextSize()+1);                break;            case R.id.font_wu:                mTextView.setTextSize(mTextView.getTextSize()+2);                break;        }        return super.onOptionsItemSelected(item);    }}
        xml布局中:

<?xml version="1.0" encoding="utf-8"?><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"    tools:context="zhanghao.optionmenudemo.MainActivity">    <TextView        android:id="@+id/optionMenuText"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="OptionMenu选择菜单"/></RelativeLayout>
      res资源文件夹下的menu布局:

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:app="http://schemas.android.com/apk/res-auto">    <item        android:id="@+id/option_color"        app:showAsAction="never"        android:title="optionMenu-->改变字体颜色"/>    <!--二级菜单-->    <item        android:id="@+id/option_textSize"        app:showAsAction="never"        android:title="optionMenu-->改变字体大小">        <menu>            <group>                <item                    android:title="字体大小为30sp"                    android:id="@+id/font_san"                    app:showAsAction="never">                </item>                <item                    android:id="@+id/font_wu"                    app:showAsAction="never"                    android:title="字体大小为50sp">                </item>            </group>        </menu>    </item></menu>
       



1 0
原创粉丝点击