WEB开发网
开发学院手机开发Android 开发 Android SDK 开发之创建菜单 阅读

Android SDK 开发之创建菜单

 2010-03-23 04:18:00 来源:WEB开发网   
核心提示:Intent.SELECTED_ALTERNATIVE, 它的当前选定的MIME类型, 和其它的要求, 就像你定义一个满足特定intent filter来启动一个新的Activity的intent一样. 然后调用addIntentOptions()来让Android搜索满足要求的服务并将它们加入菜单. 如果没有应用程序
Intent.SELECTED_ALTERNATIVE, 它的当前选定的MIME类型, 和其它的要求, 就像你定义一个满足特定intent filter来启动一个新的Activity的intent一样. 然后调用addIntentOptions()来让Android搜索满足要求的服务并将它们加入菜单. 如果没有应用程序满足要求, 那么就不会增加额外菜单项.

注意: SELECTED_ALTERNATIVE被用于处理当前被选择的元素. 因此它应该只在使用onCreateContextMenu()或onPrepareOptionsMenu()创建菜单时使用.

这里有一个让Android搜索外部服务的例子:

public boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);

// Create an Intent that describes the requirements to fulfill, to be included

// in our menu. The offering app must include a category value of Intent.CATEGORY_ALTERNATIVE.

Intent intent = new Intent(null, getIntent().getData());

intent.addCategory(Intent.CATEGORY_ALTERNATIVE);

// Search for, and populate the menu with, acceptable offering applications.

menu.addIntentOptions(

thisClass.INTENT_OPTIONS, // Menu group

0, // Unique item ID (none)

0, // Order for the items (none)

this.getComponentName(), // The current Activity name

null, // Specific items to place first (none)

intent, // Intent created above that describes our requirements

0, // Additional flags to control items (none)

null); // Array of MenuItems that corrolate to specific items (none)

return true;

}

对每个找到的满足intent的Activity, 增加一个菜单项, 使用android:label值作为菜单项的名称. addIntentOptions()还将增加的返回菜单项个数.

同时注意, 当addIntentOptions()被调用时,它将覆盖第一个参数中的菜单组中的所有菜单项.

如果你想让你的Activity为其它应用程序菜单服务, 你只需要像往常一样定义一个intent filter. 只是增加一个ALTERNATIVE 和/或SELECTED_ALTERNATIVE在元素中的name属性中. 例如:

《intent-filter label="Resize Image"》

...

《category android:name="android.intent.category.ALTERNATIVE" /》

《category android:name="android.intent.category.SELECTED_ALTERNATIVE" /》

...

《/intent-filter》

上一页  2 3 4 5 6 7 

Tags:Android SDK 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接