4
respostas

Menu não aparece

Estou tentando colocar o símbolo de "Done" no menu, porém não está aparecendo nada. O XML do formulário no menu não foi criado e tive que criar manualmente. Sobre o símbolo, não entendi de onde surgiu aqueles png, sendo assim descobri uma ferramenta do android e coloquei por ela (é um xml -> ic_done_black_24dp.xml). Estou mandando os códigos, podem ver por que não aparece?

FormularioActivity.java

package angroup.agenda;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class FormularioActivity extends AppCompatActivity {

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

        Button botaoSalvar = (Button) findViewById(R.id.formulario_salvar);
        botaoSalvar.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Toast.makeText(FormularioActivity.this,"Botão clicado!", Toast.LENGTH_SHORT).show();
                finish(); 
            }
        });

    }

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

menu_formulario.xml

<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="angroup.agenda.ListaActivity">


    <item
        android:id="@+id/menu_formulario_ok"
        android:title="Ok"
        android:icon="@drawable/ic_done_black_24dp"
        app:showAsAction="always"/>

</menu>

ic_done_black_24dp.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"/>
</vector>
4 respostas

Excluir, em layouts, as "contents" que vieram. Posso fazer isso?

E ai beleza? Tenta esse codigo aqui.

@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_formulario, menu); return true; }

Ainda não aparece. Só aparece o formulário.

Já sei o que está acontecendo. Você precisa criar uma "toolbar" para que o menu apareça. Segue a baixo uma implementação da tal. Lembrando que você deve colocar esse bloco logo em seguida do Layout principal do xml.

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark" />

Dai você chama esse método dentro do onCreate:

private void setToolbar() {
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
    }