这在API级别v8-13上对我不起作用,我已经完成了开发人员指南所说的一切,包括添加我自己的命名空间.
我正在使用一个自定义样式,其中theme.AppCompat作为其父级(如下).
这是我的第一篇帖子,所以我没有足够的声望点来发布活动图像,但是当我按下菜单按钮时, *** 作栏中缺少该项目,菜单显示在底部.
任何反馈将不胜感激!!
AndroidManifest.xml中:
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID" package="com.myproject" androID:installLocation="auto" androID:versionCode="1" androID:versionname="1.0" > <uses-sdk androID:minSdkVersion="8" /> <application androID:deBUGgable="true" androID:icon="@drawable/my_app_icon" androID:label="@string/app_name" androID:theme="@style/CustomActionbartheme" > <uses-library androID:name="com.Google.androID.maps" /> <activity androID:name=".ui.MainActivity" androID:label="@string/app_name" androID:launchMode="singletop" > <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
menu.xml文件
<menu xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:MyApp="http://schemas.androID.com/apk/res-auto" > <item androID:ID="@+ID/overflow" MyApp:icon="@drawable/abc_ic_menu_moreoverflow_normal_holo_dark" MyApp:showAsAction="always" androID:icon="@drawable/abc_ic_menu_moreoverflow_normal_holo_dark" androID:showAsAction="always"> <menu> <item androID:ID="@+ID/action_about" androID:icon="@drawable/about_icon" androID:title="About"/> <item androID:ID="@+ID/action_Feedback" androID:icon="@drawable/Feedback_icon" androID:title="Feedback"/> <item androID:ID="@+ID/action_settings" androID:icon="@drawable/settings_icon" androID:title="@string/action_settings"/> </menu> </item></menu>
styles.xml
<resources> <style name="CustomActionbartheme" parent="@style/theme.AppCompat"> <item name="androID:actionbarStyle">@style/MyActionbar</item> <item name="actionbarStyle">@style/MyActionbar</item> </style> <style name="MyActionbar" parent="@style/Widget.AppCompat.Actionbar"> <item name="androID:TitleTextStyle">@style/TitleTextStyle</item> <item name="androID:background">@drawable/abc_ab_bottom_solID_dark_holo</item> <item name="TitleTextStyle">@style/TitleTextStyle</item> <item name="background">@drawable/abc_ab_bottom_solID_dark_holo</item> </style> <style name="TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.Actionbar.Title"> <item name="androID:textStyle">bold</item> </style></resources>
MainActivity.java
package com.myproject;...public class MainActivity extends BaseActivity { public voID onCreate(Bundle savedInstanceState) { super.onCreateEqually(savedInstanceState); ActivityHelper.setLayoutTitle(this,R.layout.main,R.string.main,getSupportActionbar()); } ...}
BaseActivity.java
package com.myproject;import androID.support.v7.app.ActionBaractivity;...public class BaseActivity extends ActionBaractivity { protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public boolean onCreateOptionsMenu(Menu menu) { return true; } public boolean onPrepareOptionsMenu(Menu menu) { return MenusHelper.displayMenu(this,menu); } ...}
MenusHelper.java
package com.myproject;...public final class MenusHelper { ... public static boolean displayMenu(BaseActivity currentActivity,Menu menu) { // clear former menus menu.clear(); MenuInflater inflater = new MenuInflater(currentActivity); inflater.inflate(R.menu.menu,menu); return true; } ...}
ActivityHelper.java
package com.myproject;import androID.support.v7.app.Actionbar;...public final class ActivityHelper { ... public static voID setLayoutTitle(Activity activity,int layoutID,String TitleStr,Actionbar actionbar) { activity.setContentVIEw(layoutID); actionbar.setTitle(TitleStr); actionbar.setdisplayHomeAsUpEnabled(true); }}解决方法 尝试将代码放入MenusHelper.displayMenu(this,menu);进入onCreateOptionsMenu()而不是onPrepareOptionsMenu()并进行必要的修改.
@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu,menu); // In case you have an item MenuItem shareItem = menu.findItem(R.ID.menu_share); // To retrIEve the Action ProvIDer mActionProvIDer = (ShareActionProvIDer) MenuItemCompat.getActionProvIDer(shareItem); return super.onCreateOptionsMenu(menu);}
确保XML中的菜单如下所示:
<item androID:ID="@+ID/share" androID:title="@string/menu_share" yourapp:actionProvIDerClass="androID.support.v7.Widget.ShareActionProvIDer" yourapp:showAsAction="ifRoom|withText"/>总结
以上是内存溢出为你收集整理的android – AppCompat – 项目未显示在API级别v8-13的 *** 作栏中全部内容,希望文章能够帮你解决android – AppCompat – 项目未显示在API级别v8-13的 *** 作栏中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)