"行动吧"没有出现

时间:2014-05-07 09:56:17

标签: android

我正在尝试在API版本8上实现操作栏(appcompatv_7)。尽管我的代码中没有错误但操作栏不会显示,而是按菜单按钮以文本格式显示。 这是java代码:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }
}

菜单代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.usingsherlockkk.MainActivity" >

    <item
        android:id="@+id/item1"
        android:icon="@android:drawable/ic_menu_add"
        android:showAsAction="ifRoom"
        android:title="Title1">
    </item>
    <item
        android:id="@+id/item2"
        android:icon="@android:drawable/ic_menu_delete"
        android:showAsAction="ifRoom"
        android:title="Title2">
    </item>
    <item
        android:id="@+id/reset"
        android:icon="@android:drawable/ic_menu_revert"
        android:showAsAction="ifRoom"
        android:title="Revert">
    </item>
    <item
        android:id="@+id/item4"
        android:icon="@android:drawable/ic_menu_edit"
        android:showAsAction="ifRoom"
        android:title="Title4">
    </item>
    <item
        android:id="@+id/item5"
        android:icon="@android:drawable/ic_menu_help"
        android:showAsAction="ifRoom"
        android:title="Title5">
    </item>

</menu>

清单文件代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.usingsherlockkk"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light"
        android:uiOptions="splitActionBarWhenNarrow" >
        <activity
            android:name="com.example.usingsherlockkk.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

伙计我的问题是所有菜单项都显示在溢出处,只显示标题。我用大/小屏幕设备检查了它,但它保持不变。 我希望我已经很好地解释了我的问题。如果有什么东西是模糊的,请告诉我

3 个答案:

答案 0 :(得分:0)

试试此代码

  @Override
     protected void onCreate(Bundle arg0) {
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        super.onCreate(arg0);
        setContentView(R.layout.activity_main);
    }

答案 1 :(得分:0)

好的家伙我得到了解决我自己问题的方法。 问题在于定义&#34; menu.xml&#34;中的操作项。 Android文档说你不能使用&#34; android:showAsAction&#34;在较旧的设备上,因为它在旧版本中不存在。您必须使用自定义命名空间。而不是说&#34; android:showAsAction&#34;,使用&#34; app:showAsAction&#34;你很高兴。以下是官方网页的附件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom"  />
    ...
</menu>

使用支持库中的XML属性:

请注意,上面的showAsAction属性使用标记中定义的自定义命名空间。在使用支持库定义的任何XML属性时,这是必需的,因为旧设备上的Android框架中不存在这些属性。因此,您必须使用自己的命名空间作为支持库定义的所有属性的前缀。

我希望它可以帮助那些人。

答案 2 :(得分:0)

我这样做的方式如下: AndroidManifest.xml文件中有一行

android:theme="@style/AppTheme.NoActionBar"

我只是将其更改为

android:theme="@style/AppTheme"

问题解决了。