Menu avec icon

Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 19 sept. 2021 à 19:00
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 21 sept. 2021 à 20:18
Bonjour à tous, je cherche en vain à créer un menu avec des icons.
voici ce que j'ai fais:


<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/barre_a_outil"
    android:minHeight="?attr/actionBarSize"
    android:background="#DC0202"/>



<?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_journee"
        android:title="Journées"
        android:icon="@drawable/icon_journee">
    </item>

    <item
        android:id="@+id/menu_chercher"
        android:title="Chercher"
        android:icon="@drawable/icon_chercher">
    </item>

    <item
        android:id="@+id/menu_galerie"
        android:title="Galerie"
        android:icon="@drawable/icon_galerie">
    </item>

    <item
        android:id="@+id/menu_parametres"
        android:title="Paramètres"
        android:icon="@drawable/icon_parametre">
    </item>

    <item
        android:id="@+id/menu_exporter"
        android:title="Exporter"
        android:icon="@drawable/icon_exporter">
    </item>

    <item
        android:id="@+id/menu_importer"
        android:title="Importer"
        android:icon="@drawable/icon_importer">
    </item>
</menu>


public class MainActivity extends AppCompatActivity
{
    private LinearLayout activity_main;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        activity_main = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.activity_main, null);
        recuperer_la_barre_a_outil();

        setContentView(activity_main);
    }

    /**
     * On ajoute le menu à la barre à outil
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        getMenuInflater().inflate(R.menu.menu_barre_a_outil, menu);
        return true;
    }

    /**
     * On recupere la barre à outil
     */
    private void recuperer_la_barre_a_outil()
    {
        Toolbar barre_a_outil = (Toolbar) activity_main.findViewById(R.id.barre_a_outil);
        setSupportActionBar(barre_a_outil);
        getSupportActionBar().setTitle(null); // supprime le titre de la barre à outil
    }

    /**
     * Evenements lorsque l'on clic sur un bouton du menu
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case R.id.menu_journee:
                Toast.makeText(this, "Journee", Toast.LENGTH_LONG).show();
                return true;

            case R.id.menu_chercher:
                Toast.makeText(this, "Chercher", Toast.LENGTH_LONG).show();
                return true;

            case R.id.menu_galerie:
                Toast.makeText(this, "Galerie", Toast.LENGTH_LONG).show();
                return true;

            case R.id.menu_parametres:
                Toast.makeText(this, "Parametre", Toast.LENGTH_LONG).show();
                return true;

            case R.id.menu_exporter:
                Toast.makeText(this, "Exporter", Toast.LENGTH_LONG).show();
                return true;

            case R.id.menu_importer:
                Toast.makeText(this, "Importer", Toast.LENGTH_LONG).show();
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }
}


petite précision, les icon qui sont dans /drawable sont des vector mais ça ne change rien si je prend une image png.
en faisant comment ça, je que j’obtiens, c'est un menu uniquement avec les titre. Or, j'aimerais avoir une icon en plus à gauche des titres.

Merci à ceux qui pourrons m'aider.

Configuration: Linux / Firefox 92.0
A voir également:

4 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
20 sept. 2021 à 09:45
Hello,

Il faut ajouter l'attribut
app:showAsAction
dans les items

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

    <item
        android:id="@+id/menu_journee"
        android:title="Journées"
        android:icon="@drawable/icon_journee"
        app:showAsAction="always"/>
</menu>

0
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
20 sept. 2021 à 13:02
Merci Bruno, le problème, c'est que ce faisant, j'obtiens bien mon icon qui apparaît à coté des 3 point en haut à droite, mais sans texte comme ceci:


et ce que je voudrais, c'est un resultat comme ceci:
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
20 sept. 2021 à 14:09
0
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
Modifié le 21 sept. 2021 à 20:53
Malheureusement, ça ne fonctionna pas non plus. en fait avec le paramètre "app:showAsAction"
soit j'ai mon icon en dehors de mon menu à coté des 3 point en haut à droite, soit j'ai que le texte dans la bulle qui apparaît lorsque l'on click sur le 3 point en haut à droite

je vais essayer de façon programmatique pour voir
0