Dans le code suivant, findViewById retourne null:findViewById dans le menu gonflé
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
if (view == this.getListView()) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
final Message clickedMessage = this.adapter.getItem(info.position);
menu.setHeaderTitle(clickedMessage.getTitle());
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.showuser_context, menu);
View button = this.findViewById(R.id.showuser_contextmenu_showthread);
// I would like to call button.setOnClickListener here
}
Et res/menu/showuser_context.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/showuser_contextmenu_showthread" android:title="@string/showuser_contextmenu_showthread"></item>
<item android:id="@+id/showuser_contextmenu_reply" android:title="@string/showuser_contextmenu_reply"></item>
</menu>
I tryed "propre" (Projet -> Clean du menu principal eclipse) le projet, mais cela ne fonctionne toujours pas.
Cordialement, ProgVal
Bonne idée, mais elle renvoie toujours null. Idem pour 'view' au lieu de' this'. –
logiquement, cela devrait fonctionner, car vous avez gonflé votre xml dans votre menu, alors quand vous essayez de trouver les vues en utilisant ceci, il cherchera votre View sur le ContentView de votre activité (pas de votre menu), c'est pourquoi vous devrait trouver votre point de vue dans votre instance de menu – Houcine