Подтвердить что ты не робот

Не отображается панель действий 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;
}
 }

Мой код 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>

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>
4b9b3361

Ответ 1

Вы пытались настроить тему приложения на тему, поддерживающую ActionBar, например Theme.Holo.Light?

Кроме того, в Activity вы можете попробовать getActionBar().show();.

Ответ 2

В моем случае, что исправляло проблему, был ответ этот вопрос; для удаления

android:theme="@style/AppTheme"

из тега в манифесте.

Ответ 3

Principale extends ActionBarActivity должен заботиться о проблеме

Ответ 4

У вас есть расширенная активность. Попробуйте расширить ActionBarActivity в Java-коде

Ответ 5

Отработал 3 часа и, в конце концов, исправил это! Забудьте удалить андроид: theme = "@style/AppTheme" из вашего манифеста. Это приводит к ошибке во время выполнения. Вот как я исправил проблему. Ваша активность должна расширять AppCompatActivity вместо Activity.

Ответ 6

ваш основной вид деятельности должен быть таким:

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

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

    ActionBar actionBar = getActionBar();
    actionBar.hide();

    actionBar.show();
    actionBar.setSubtitle("subtitle");
    actionBar.setTitle("title"); 


}

@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 true;
}

@Override  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_refresh:
      Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)
          .show();
      break;

         default:
             break;
             }
    return true;
    } 



}

и ваш main.xml вот так:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

     <item
         android:id="@+id/action_refresh"
         android:orderInCategory="100"
         android:showAsAction="always"
         android:icon="@drawable/ic_action_search"
         android:title="Refresh"/>
    <item
        android:id="@+id/action_settings"
        android:title="Settings">
    </item>

</menu> 

это хорошее и простое руководство по созданию панели действий: http://www.vogella.com/tutorials/AndroidActionBar/article.html

Ответ 7

для создания вашей активности.

getSupportActionBar().setDisplayShowCustomEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(false);
        customNav = LayoutInflater.from(this).inflate(
                R.layout.action_bar_customvieew, null);
        getSupportActionBar().setCustomView(customNav);

Ответ 8

Проверьте файл манифеста в объявлении Activity, если эта строка есть, затем удалите его.

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

Ответ 9

К вашему сведению, я решил проблему с actionBar, перейдя в XML файл макета, а затем нажал на View View → Show Layout Decorations.

View Option is the little eye just under the Select Design Surface

Надеюсь, это решит вашу проблему.

Приветствия.

Ответ 10

Убедитесь, что вы не используете:

requestWindowFeature(Window.FEATURE_NO_TITLE);

в вашем файле .xml макета.

Ответ 11

В моем случае Меню панели действий не было видно при использовании открытый класс MainActivity расширяет действие { } но был виден при использовании открытый класс MainActivity расширяет ActionBarActivity { }

Ответ 12

У меня была та же проблема, и я подтверждаю, что если вы удалите android:theme="@style/AppTheme" из AndroidManifest.xml, она решит вашу проблему.

Ответ 13

Что решило мою проблему в этом отношении, так это то, что в design view щелкните значок eye (view options) и выберите Show Layout Decorations.

Image Showing the Eye Icon in the IDE of Android Studio 3.5

Ответ 14

вам нужно вызвать метод setHasOptionsMenu (true); в методе OnCreate

Ответ 15

Я использую Samsung young 2 в качестве эмулятора Android, и у меня такая же проблема, я решу это, удалив android:theme ="" из manifest.xml и изменение темы на другую панель действий поддержки темы

Ответ 16

getSupportActionBar().show();

Просто вставьте этот код в свою функцию java onCreate.

Ответ 17

Вы должны расширить AppCompatActivity.