MenuInfalterTest.java
public class MenuInflaterTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onCreateOptionsMenu(Menu menu) {
// 获取当前的菜单
MenuInflater inflater = getMenuInflater();
// 填充菜单
inflater.inflate(R.menu.option_menu, menu);
return true;
}
/**
* 对菜单点击事件处理
*/
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_add:
break;
case R.id.menu_wallaper:
break;
case R.id.menu_search:
break;
case R.id.menu_setting:
showSettings();
break;
}
return super.onOptionsItemSelected(item);
}
/**
* 显示设置选项
*/
private void showSettings() {
Intent settings = new Intent
(android.provider.Settings.ACTION_SETTINGS);
settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
startActivity(settings);
}
}
}
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
Option_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_add"
android:title="Add"
android:icon="@android:drawable/ic_menu_add"/>
<item android:id="@+id/menu_wallaper"
android:title="Wallpaper"
android:icon="@android:drawable/ic_menu_gallery"/>
<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@android:drawable/ic_search_category_default"/>
<item android:id="@+id/menu_setting"
android:title="Settings"
android:icon="@android:drawable/ic_menu_preferences"/> </menu>
分享到:
相关推荐
这里使用MenuInflater的`inflate()`方法,将`R.menu.main`(对应`main.xml`)加载到传入的Menu对象中。代码如下: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater ...
使用`MenuInflater.inflate()`方法可以将XML菜单加载到Activity或Fragment中。 源码分析: 在Android框架中,Menu类是抽象的,实际使用的实现类是`com.android.internal.view.menu.MenuBuilder`。`MenuBuilder`包含...
下面将详细介绍Menu控件的基本使用方法以及在Demo中的实现。 1. **Menu的创建**: - Menu是在Android的Activity或Fragment中通过`onCreateOptionsMenu()`方法来创建的。在这个方法内,我们可以使用`MenuInflater`...
在Activity的`onCreateOptionsMenu()`方法中,我们通常会使用`MenuInflater`的`inflate()`方法,将XML菜单布局加载到活动的菜单实例中。 3. **菜单的显示** 菜单在界面上的显示通常与`ActionBar`或`Toolbar`关联。...
掌握其使用方法,对于持久化存储复杂数据结构至关重要。 ### Location的使用与获取Address 定位服务(`Location`)在地图应用、LBS(基于位置的服务)等领域发挥着核心作用。通过`LocationManager`和服务提供商,...
#### 六、Android中MenuInflater的使用(布局定义菜单) - **MenuInflater介绍**:用于从XML文件加载菜单资源。 - **使用示例**: ```java MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu....
在这个方法中,开发者可以使用`MenuInflater`来从XML布局文件中解析并填充Menu。XML布局文件通常位于项目的`res/menu`目录下,文件名可以自定义,比如`menu_main.xml`。 例如,一个简单的`menu_main.xml`可能包含...
使用`MenuInflater`将XML定义的菜单布局文件(如`popup_menu.xml`)填充到`PopupMenu`中。`MenuInflater`是Android用于解析菜单布局并将其转换为可操作菜单对象的工具。 ```java MenuInflater inflater = menu....
添加`MenuItem`后,可以使用`setShowAsAction()`方法决定菜单项是否在ActionBar中显示图标,或者使用`setTitle()`、`setIcon()`等方法来设置其标题和图标。 4. **处理点击事件** 菜单项被点击时,系统会调用`...
要动态添加菜单项,我们需要在`onPrepareOptionsMenu()`或`onCreateOptionsMenu()`方法中使用`Menu.add()`方法。这个方法接受四个参数:组ID、菜单ID、菜单项的顺序号(用于排序)和标题。 ```java MenuItem ...
通过`MenuInflater`类的`inflate`方法,可以将XML定义的菜单加载到活动中,例如`menuInflater.inflate(R.menu.main_menu, menu);`。 2. **选项菜单** 选项菜单是最常见的菜单类型,通常在设备的物理或虚拟Menu键被...
对于高级用法,如动态添加菜单项、根据条件显示隐藏菜单,或者使用MenuItem的其他属性和方法,都需要对Android的菜单系统有深入的理解。 总之,Android菜单是提高用户体验的重要手段,熟练掌握OptionMenu和...
在Activity的`onCreateOptionsMenu`方法中,使用`MenuInflater`来加载之前创建的XML菜单布局,并调用`setMenuBackground`方法来设置背景。 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { ...
Android高手进阶教程之----Android 中MenuInflater的使用(布局定义菜单)! .doc Android高手进阶教程之----Android 中Preferences的使用! .doc Android高手进阶教程之----Android 中自定义View的应用.doc Android高手...
在这里,你可以使用`MenuInflater`来加载XML资源文件,该文件定义了菜单项及其属性。 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); ...
在这个方法中,我们可以使用`MenuInflater`来填充菜单项,然后通过`menu.add()`添加具体的操作选项。例如: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = ...
此方法中使用MenuInflater来加载定义好的XML菜单布局文件。onOptionsItemSelected方法用于处理菜单项被选中的事件,它需要根据菜单项的ID来执行相应的操作。 文档还介绍了使用Menu.add方法通过代码动态添加菜单项。...
在本文中,我们将深入探讨`ContextMenu`的使用方法、实现步骤以及一些常见应用场景。 首先,`ContextMenu`的创建需要在`Activity`或`Fragment`中注册,并通过`registerForContextMenu()`方法来指定需要显示`...
在这个方法里,调用`MenuInflater`的`inflate`方法,将菜单XML文件加载到OptionMenu中。 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); ...