在活动中使用 Menu
一、来自《Android第一行代码》
1.menu,main文件
1 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 2 <item 3 android:id="@+id/add_item" 4 android:title="Add"/> 5 <item 6 android:id="@+id/remove_item" 7 android:title="Remove"/> 8 </menu>
这里我们创建了两个菜单项,其中<item>标签就是用来创建具体的某一个菜单项,然后通
过android:id给这个菜单项指定一个唯一标识符,通过android:title给这个菜单项指定一个名称。
2. onCreateOptionsMenu()
1 public boolean onCreateOptionsMenu(Menu menu) { 2 getMenuInflater().inflate(R.menu.main, menu); 3 return true; 4 }
通过 getMenuInflater()方法能够得到 MenuInflater对象,再调用它的 inflate()方法就可以给
当前活动创建菜单了。inflate()方法接收两个参数,第一个参数用于指定我们通过哪一个资源
文件来创建菜单,这里当然传入 R.menu.main,第二个参数用于指定我们的菜单项将添加到哪
一个 Menu对象当中,这里直接使用 onCreateOptionsMenu()方法中传入的 menu参数。然后给
这个方法返回 true,表示允许创建的菜单显示出来,如果返回了 false,创建的菜单将无法显示。
3. onOptionsItemSelected()
1 public boolean onOptionsItemSelected(MenuItem item) { 2 switch (item.getItemId()) { 3 case R.id.add_item: 4 Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show(); 5 break; 6 case R.id.remove_item: 7 Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show(); 8 break; 9 default: 10 } 11 return true; 12 }
在 onOptionsItemSelected()方法中,通过调用 item.getItemId()来判断我们点击的是哪一个菜单
项,然后给每个菜单项加入自己的逻辑处理,这里我们就活学活用,弹出一个刚刚学会的 Toast。