[RESOLVIDO] Android Studio - Menu não aparece!

Olá! Seguinte:

Meu menu não está aparecendo. Eu não manjo mt de Style, pode ser que seja alguma coisa que ele está interferindo. Na atualização do Android Studio 4.1.1 não tem mais o arquivo style. O que tem eh pakage de nome themes com 2 arquivos de nome themes tbm, ambos. Segue o Manifest, o Menu, os themes, o Layout da Activity e a Activity. Eu tenho um Toolbar no Layout e na Activity:

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="projeto.jogodavelha">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/icone_jogo_da_velha"
        android:label="@string/jogo_da_velha"
        android:roundIcon="@mipmap/icone_jogo_da_velha"
        android:supportsRtl="true"
        android:theme="@style/Theme.JogoDaVelha">
        <activity android:name=".Listas.ListaPartidas_Jogador_Maquina"/>
        <activity android:name=".Listas.ListaPartidas_JogadorV_JogadorX"/>
        <activity android:name=".Sistema.JogoDaVelha"/> <!-- A LINHA android:screenOrientation="portrait" É PARA O CELULAR PERMANECER SEMPRE NA VERTICAL -->
        <activity
            android:name=".Partidas.NIvel_Dificil.Partida_Humano_Maquina"
            android:screenOrientation="portrait"/>
        <activity
            android:name=".Partidas.NIvel_Dificil.Partida_JogadorV_JogadorX"
            android:screenOrientation="portrait"/>
        <activity
            android:name=".Sistema.MainActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

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

</manifest>

Menu

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/menu_jogo_niveis"
        android:title="@string/niveis"/>

    <item
        android:id="@+id/menu_jogo_placar"
        android:title="@string/placar"/>

    <item
        android:id="@+id/menu_jogo_configuracoes"
        android:title="@string/configuracoes"/>

    <item
        android:id="@+id/menu_jogo_informacoes"
        android:title="@string/informações"/>

</menu>

1º themes

<!-- Base application theme. -->
<style name="Theme.JogoDaVelha" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/purple_500</item>
    <item name="colorPrimaryVariant">@color/purple_700</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

2º themes

<!-- Base application theme. -->
<style name="Theme.JogoDaVelha" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/purple_200</item>
    <item name="colorPrimaryVariant">@color/purple_700</item>
    <item name="colorOnPrimary">@color/black</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_200</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

Layout da Activity:

<android.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/cor_1_amarela"
    android:minHeight="?attr/actionBarSize"
    android:theme="?attr/actionBarTheme"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

Activity:

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.menu_jogo_da_velha, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item){

    if(item.getItemId() == R.id.menu_jogo_niveis){
        niveis();
    }
    else if(item.getItemId() == R.id.menu_jogo_placar){
        placar();
    }
    else if(item.getItemId() == R.id.menu_jogo_configuracoes){
        configuracoes();
    }
    else if(item.getItemId() == R.id.menu_jogo_informacoes){
        informacoes();
    }
    else{
        Toast.makeText(JogoDaVelha.this, "onOptionsItemSelected ::: else", Toast.LENGTH_SHORT).show();
    }

    return super.onOptionsItemSelected(item);
}

Pesquisando eu vi um cara falando que é pra tirar a linha android:theme="@style/Theme.JogoDaVelha" do Manifest. Fiz e deu um erro atras do outro. Modifiquei os Themes, também não rodou. Enfim… Tô sem nem identificar o pq a coisa não tá funcionando.

Alguém?

eu estava com esse problema, exclui um style e funcionou. Excluí o que seria equivalente ao dark mode no caso

Vc se refere ao arquivo 2º THEME que tem a linha
<item name="colorOnPrimary">@color/black</item> ?

Antigamente o style ficava dentro do package VALUES junto com o color, string… Hj depois da atualização, o que há são esses 2 arquivos de nome THEME que ficam na mesma pasta também de nome THEME.

Onde eu tenho que remover o style que vc fala? no Manifest, ho theme…?

Sim, agora ta bem diferente mesmo.

Me refiro ao segundo arquivo do themes, um é light mode e o outro é dark mode.


Se quiser fazer um backup do arquivo salvando o conteudo em outro lugar, também é válido

Blz, Voltei! Desculpa a demora!

Não resolveu não, Abner…

Só pra ter ctz, vc quer que o menu apareça onde? Na Toolbar/ActionBar?

Sim, no Toolbar. Não tou usando o ActionBar, será que é isso?

Troca isso

<style name="Theme.JogoDaVelha" parent="Theme.AppCompat.Light.NoActionBar">

Por isso:

<style name="Theme.JogoDaVelha" parent="Theme.AppCompat.Light.DarkActionBar">
1 curtida

Nossa, foi exatamente oq eu fiz, funcionou! Obg, Abner.

1 curtida

@rodriguesabner, ta funcionando tranquilo, mas já pesquisei e não achei, como faço pra mudar a cor da barra do menu e como alterar o texto? A cor da barra do menu e o nome escrito nele estão fixos. O nome é o do projeto, ele está no menu de todas as outras activitys, tem como alterar isso programaticamente?



import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
   actionBar.setTitle("Oi Abner"); //muda o texto
   actionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED)); //muda o background
   //se tiver a cor la no colors:
   //actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.white)));
   actionBar.setDisplayShowTitleEnabled(false); //tira o texto
   actionBar.setDisplayShowTitleEnabled(true); //coloca o texto
}
1 curtida

Perfeito!

Abner, vc estuda e trabalha com o Android Studio? Se não, qual é a IDE?

Na verdade eu tinha parado com o Android, estava só com ReactJS e Node, mas tive que fazer um projetinho e resolvi usar de novo.


Mas usei o Android Studio mesmo, a versão mais atualizada. (Quando eu usava windows, tinha um serio problema de performance, hoje to com o Linux -o mesmo HD- e senti muita diferença)

1 curtida

Tive uma bronca com o Windows que teve que levar pra assistência pra formatar. Quase que migrei pro Linux.

O unico problema que tenho no linux é a falta de programas que eu costumava usar: Photoshop, Illustrator, EyeDropper, Figma e etc… Mas tirando isso, recomendo muito a migração!

1 curtida

Blz, Vlw!