zoukankan      html  css  js  c++  java
  • Android攻城狮OptionsMenu

    Android的菜单一共有三种:
    OptionsMenu 选择菜单
    ContextMenu 上下文菜单
    SubMenu 子菜单
    
    创建选项菜单:
    在 Activity 里面重写 onCreateOptionMenu(),在里面设置菜单项。设置菜单项可以用代码动态地添加:menuadd(); 还可以通过 xml(在里面配置菜单项) 来配置,然后通过MenuInflater.inflate()设置。
    然后设置菜单的点击事件,重写 onOptionsItemSelected()。
    如图,是menu文件夹下的main.xml的代码。
    --------------
    重写onCreateOptionMenu():
    public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.main, menu);
       return true;
    }
    --------------
    摘自评论区
    从Android3.0开始,Android并不要求手机设备上必须提供Menu菜单。与桌面菜单不同,Android菜单默认是看不到的,这样情况下,Android推荐使用ActionBar来代替菜单。


     1 public class MainActivity extends ActionBarActivity {
     2 
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         setContentView(R.layout.fragment_main);
     7 
     8     }
     9 
    10     @Override
    11     public boolean onCreateOptionsMenu(Menu menu) {
    12 
    13         // Inflate the menu; this adds items to the action bar if it is present.
    14         // xml加载:
    15         // getMenuInflater().inflate(R.menu.main, menu);
    16         // 动态设置菜单项
    17         MenuItem item = menu.add(1, 100, 1, "菜单一");
    18         item.setTitle("aaa");
    19         item.setIcon(R.drawable.ic_launcher);// api>=11它不显示图标
    20         menu.add(1, 101, 1, "菜单二");
    21         menu.add(1, 102, 1, "菜单三");
    22 
    23         return true;
    24     }
    25 
    26     // 创建点击事件
    27     @Override
    28     public boolean onOptionsItemSelected(MenuItem item) {
    29         // TODO Auto-generated method stub
    30         switch (item.getItemId()) {
    31         // xml方式:
    32         // case R.id.action_menu_item1:
    33         // Toast.makeText(MainActivity.this, "点击菜单一", 0).show();
    34         // break;
    35         //
    36         // case R.id.action_menu_item2:
    37         // Toast.makeText(MainActivity.this, "点击菜单二", 0).show();
    38         // break;
    39         // 动态设置菜单项:
    40         case 100:
    41             Intent intent = new Intent(MainActivity.this, SencondActivity.class);
    42             item.setIntent(intent);
    43             Toast.makeText(MainActivity.this, "点击菜单一", 0).show();
    44             break;
    45         case 101:
    46             Toast.makeText(MainActivity.this, "点击菜单二", 0).show();
    47             break;
    48         case 102:
    49             Toast.makeText(MainActivity.this, "点击菜单三", 0).show();
    50             break;
    51 
    52         }
    53         return super.onOptionsItemSelected(item);
    54     }
    55 
    56 }
  • 相关阅读:
    【ES6】数组的扩展——扩展运算符
    【ES6】函数的扩展
    菜鸡程序员是如何写代码的?
    我是技术总监,我出来求职,竟然找不到工作!
    为什么互联网公司天天都在招人?
    这个立冬,我线下面基了一位TMD高级专家,太牛逼了!
    太可怕了!有些码农为啥写代码,写到监狱里去了?
    56岁潘石屹生日当天宣布要学编程语言Python,网友:地产商来抢码农饭碗了!
    如何写出让同事无法维护的代码?
    hdu 1037 Keep on Truckin'
  • 原文地址:https://www.cnblogs.com/my334420/p/6785662.html
Copyright © 2011-2022 走看看