getMenuInflater().inflate(R.menu.options, menu); //搜索视窗,因为showAsAction="ifRoom",所以图三中出现了搜索按钮 SearchView searchView = (SearchView) menu.findItem(R.id.menu_search) .getActionView(); //分享视窗,因为showAsAction="never",所以只能在溢出菜单中才看见到 ShareActionProvider mShareActionProvider = (ShareActionProvider) menu .findItem(R.id.menu_share).getActionProvider(); Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("image/*"); mShareActionProvider.setShareIntent(shareIntent); //设置视窗,MyActionProvider就是我们自定义的ActionProvider MyActionProvider myactionprovider = (MyActionProvider) menu.findItem( R.id.menu_setting).getActionProvider(); return super.onCreateOptionsMenu(menu); <?xml version="1.0" encoding="utf-8"?><item android:id="@+id/menu_search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/ic_menu_search" android:showAsAction="ifroom" android:title="搜索"/><item android:id="@+id/menu_share" android:actionProviderClass="android.widget.ShareActionProvider" android:showAsAction="never" android:title="分享"/><item android:id="@+id/menu_setting" android:actionProviderClass="com.example.tabdemo.MyActionProvider" android:showAsAction="never" android:title="设置"> <menu> <item android:id="@+id/menu_theme" android:actionProviderClass="com.example.tabdemo.MyActionProvider" android:showAsAction="always|withText" android:title="更换主题"/> <item android:id="@+id/menu_system" android:actionProviderClass="com.example.tabdemo.MyActionProvider" android:showAsAction="always|withText" android:title="系统设置"/> </menu></item>点击下拉菜单总是会出现null指针。经发现是mShareActionProvider。另外为啥点击后不能触发事件。进入对应自定义的ActionProvider。配置文件android:actionProviderClass="com.example.tabdemo.MyActionProvider"这个不起作用?难道还要自己在onOptionsItemSelected触发事件?
添加回答
举报
0/150
提交
取消