Android操作栏不可见

Wil*_*ld7 22 android

我想在操作栏中添加一个选项菜单到我现有的应用程序,但它无法正常工作.如果我使用"hello world"默认应用程序创建一个新项目,我可以在操作栏中看到该按钮.onCreateOptionMenu()方法似乎永远不会在使用断点的调试中捕获,有什么问题?

我正在两个应用程序上使用API​​ 14,这是我的MainActivity代码.

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class Principale extends Activity {


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ecran_d_acceuil);


}
public boolean onCreateOptionMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.principale, menu);
    return true;
}
 }
Run Code Online (Sandbox Code Playgroud)

我的menu.xml代码

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

的manifest.xml

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

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.myapp.Principale"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.myapp.Home"
            android:label="@string/title_activity_home" >
        </activity>
        <activity
            android:name="com.example.myapp.ListDir"
            android:label="@string/title_activity_list_dir" >
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

Alv*_*ban 22

就我而言,解决这个问题的是这个问题的答案; 去除

android:theme="@style/AppTheme"
Run Code Online (Sandbox Code Playgroud)

来自清单中的标记.


cro*_*boy 14

您是否尝试将应用主题设置为支持的主题ActionBar,例如Theme.Holo.Light

另外,Activity你可以尝试getActionBar().show();.


Roh*_*rma 13

Principale扩展ActionBarActivity应该解决这个问题


小智 8

你已经扩展了活动.尝试在java代码中扩展ActionBarActivity

  • 作为更新,不推荐使用ActionBarActivity,而是使用AppCompatActivity. (8认同)

小智 6

花了3个小时终于修好了!忘记从清单中删除 android:theme="@style/AppTheme" 。它会导致运行时错误。这就是我解决问题的方法。您的 Activity 应该扩展 AppCompatActivity 而不是 Activity。


小智 5

供您参考,我通过打开布局 XML 文件,然后按“查看选项”->“显示布局装饰”解决了我的 actionBar 问题。

View Option 是 Select Design Surface 下方的小眼睛

希望它能解决你的问题。

干杯。