技术开发 频道

Android 中文API:MenuInflater

  【IT168 技术】前言

  一、结构

  public class MenuInflater extends Object

  java.lang.Object

  android.view.MenuInflater

  直接子类

  TabActivity

  二、概述

Android 中文API:MenuInflater(一)

  这个类是用来实例化菜单XML文件成菜单对象。

  由于性能的原因,由于程序创建时候就加载一些预处理XML文件,Menu过多就造成很重的负担。因此,这是目前无法在运行时使用多于一个XmlPullParser的xml文件去使用MenuInflater,它只能使用一个XmlPullParser返回的编译过的资源(R.某些文件)

  三、构造函数

  public MenuInflater (Context context)

  构造填充(inflater)一个菜单

  参见

  getMenuInflater()

  四、公共方法

  public void inflate (int menuRes, Menu menu)

  菜单层次从一个指定的xml资源去填充,如果有错误会抛掷InflateException。

  参数

  menuRes 要加载XML布局文件中的资源ID(例如R.menu.main_activity)

  menu 要填充的菜单,这些项目和子菜单就被添加到要填充菜单中

  五、补充

  文章精选

  MenuInflater Android菜单从xml创建方法

  Android中MenuInflater实例

  Android 中MenuInflater的使用(布局定义菜单)

  示例代码

  新建一个项目,项目文件列表

Android 中文API:MenuInflater(一)

  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>

0
相关文章