Android SDK 开发之创建菜单
2010-03-23 04:18:00 来源:WEB开发网注意: 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在
《intent-filter label="Resize Image"》
...
《category android:name="android.intent.category.ALTERNATIVE" /》
《category android:name="android.intent.category.SELECTED_ALTERNATIVE" /》
...
《/intent-filter》
更多精彩
赞助商链接