【总结】Android攻城狮之OptionsMenu

Android攻城狮之OptionsMenu

目录

通过布局文件创建菜单项

  MainActivity.java如下

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch (item.getItemId()){
            case R.id.action_menu1:
                Toast.makeText(MainActivity.this, "点击了菜单一",Toast.LENGTH_LONG).show();
                break;
            case R.id.action_menu2:
                Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_LONG).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}

  同时在res文件夹下,建立menu文件夹,用来存放菜单栏,并创建main.xml布局文件。布局代码如下:

<item
    android:id="@+id/action_menu1"
    android:orderInCategory="100"
    app:showAsAction="never"
    android:title="item1" />
<item
    android:id="@+id/action_menu2"
    android:orderInCategory="100"
    app:showAsAction="never"
    android:title="item2" />

动态添加菜单项

  除了xml布局文件,还可以通过代码进行动态添加

@Override
public boolean onCreateOptionsMenu(Menu menu){
    menu.add(1, 100, 1, "菜单一");
    menu.add(1, 101, 1, "菜单二");
    menu.add(1, 102, 1, "菜单三");
    menu.add(1, 103, 1, "菜单四");
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()){
        case 100:
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);//设置点击事件——页面跳转
            item.setIntent(intent);
            break;
        case 101:
            Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_LONG).show();
            break;
        case 102:
            Toast.makeText(MainActivity.this, "点击了菜单三", Toast.LENGTH_LONG).show();
            break;
        case 103:
            Toast.makeText(MainActivity.this, "点击了菜单四", Toast.LENGTH_LONG).show();
            break;
    }
    return super.onOptionsItemSelected(item);
}

   除此之外,由于menu.add()函数返回MenuItem类型数据,因此可以进一步添加内容

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuItem menuItem = menu.add(1, 100, 1, "菜单一");
    menuItem.setTitle("重命名的菜单一");
    menuItem.setIcon(R.drawable.ic_launcher_background);    
    menu.add(1, 101, 1, "菜单二");
    menu.add(1, 102, 1, "菜单三");
    menu.add(1, 103, 1, "菜单四");
    return true;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值