bonjour a vous tous

Dans un but d'entrainement je cherche a lier la création d'un menu a un élément autre que le bouton menu (ici un bouton quelconque), après avoir étudier le code de base il me semble que le menu est généré par les lignes suivantes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
	public boolean onCreateOptionsMenu(Menu menu) {
 
		// Inflate the menu; this adds items to the action bar if it is present.
		 //Création d'un MenuInflater qui va permettre d'instancier un Menu XML en un objet Menu
        MenuInflater inflater = getMenuInflater();
        //Instanciation du menu XML spécifier en un objet Menu
        inflater.inflate(R.layout.menu, menu);
 
        //Il n'est pas possible de modifier l'icône d'entête du sous-menu via le fichier XML on le fait donc en JAVA
    	menu.getItem(0).getSubMenu().setHeaderIcon(R.drawable.ic_launcher);
 
        return true;
	}

c'est tout naturellement que je me suis dis "bas coco tu vas juste récupérer sa et le mettre dans ton bouton" mais voila si l'idée semble bonne je n'arrive pas a savoir comment récupérer la variable Menu menu utiliser dans la fonction onCreateOptionsMenu.

Il y a t'il un moyen de la récuperer / faire sans/faire autrement?


code complet

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import android.R.menu;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import android.os.Build;
 
public class MainActivity extends Activity {
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
 
		if (savedInstanceState == null) {
			getFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}
		Button test =(Button)findViewById(R.id.button1); 
 
		test.setOnClickListener(new View.OnClickListener()
		{
 
			@Override
			public void onClick(View v) {
 
				 MenuInflater inflater = getMenuInflater();
			        //Instanciation du menu XML spécifier en un objet Menu
			        inflater.inflate(R.layout.menu, menu);
 
			        //Il n'est pas possible de modifier l'icône d'entête du sous-menu via le fichier XML on le fait donc en JAVA
			    	menu.getItem(0).getSubMenu().setHeaderIcon(R.drawable.ic_launcher);
 
			}
		}	
 
	}
 
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
 
		// Inflate the menu; this adds items to the action bar if it is present.
		 //Création d'un MenuInflater qui va permettre d'instancier un Menu XML en un objet Menu
        MenuInflater inflater = getMenuInflater();
        //Instanciation du menu XML spécifier en un objet Menu
        inflater.inflate(R.layout.menu, menu);
 
        //Il n'est pas possible de modifier l'icône d'entête du sous-menu via le fichier XML on le fait donc en JAVA
    	menu.getItem(0).getSubMenu().setHeaderIcon(R.drawable.ic_launcher);
 
        return true;
	}
 
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		//On regarde quel item a été cliqué grâce à son id et on déclenche une action
        switch (item.getItemId()) {
           case R.id.option:
              Toast.makeText(MainActivity.this, "Option", Toast.LENGTH_SHORT).show();
              return true;
           case R.id.favoris:
               Toast.makeText(MainActivity.this, "Favoris", Toast.LENGTH_SHORT).show();
               return true;
           case R.id.stats:
               Toast.makeText(MainActivity.this, "Stats", Toast.LENGTH_SHORT).show();
               return true;
          case R.id.quitter:
              //Pour fermer l'application il suffit de faire finish()
              finish();
              return true;
        }
        return false;}
 
	/**
         * A placeholder fragment containing a simple view.
         */
	public static class PlaceholderFragment extends Fragment {
 
		public PlaceholderFragment() {
		}
 
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_main, container,
					false);
			return rootView;
		}
	}
 
}