java - Menu Item onClickListener for fragments -


i have following menu:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".mainactivity">  <item     android:id="@+id/action_settings"     android:orderincategory="100"     app:showasaction="never"     android:title="settings" />  <item android:id="@+id/menu_share"     android:icon="@drawable/ic_heart_outline_white_24dp"     app:showasaction="always"     android:title="favorite" /> </menu> 

how set onclick listener this? bearing in mind class extends fragment:

public class my_profile extends fragment implements ....{} 

...and not know if makes difference have inflated layout in java file too.

@override     public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate) {  myview = inflater.inflate(r.layout.testfragment, container, false); ... } 

update 1

this tried after suggestions nothing seems happen can please tell me im doing wrong:

    @override     public void oncreateoptionsmenu(menu menu, menuinflater inflater) {         inflater.inflate(r.menu.menu_main, menu);         super.oncreateoptionsmenu(menu, inflater);     }    @override     public boolean onoptionsitemselected(menuitem item) {         int id = item.getitemid();          if (id == r.id.menu_share) {             log.d("buttonclick", "button click worked");         }          return super.onoptionsitemselected(item);     } 

and in oncreate added this:

sethasoptionsmenu(true); 

update 2

dont know if makes difference, i'm working example @ moment , menu inflated this. dont know if affects other 2 methods:

 mtoolbar.inflatemenu(r.menu.menu_main); 

update 3

this have tried yet, still button click doesn't log anything:

 public view oncreateview(layoutinflater inflater, @nullable viewgroup container,                              @nullable  bundle savedinstancestate) {          sethasoptionsmenu(true);          myview = inflater.inflate(r.layout.testfragment, container, false);          ...          return myview;         } 

and testing redirected 1 of other activities, yet nothing still happens:

 @override     public boolean onoptionsitemselected(menuitem item) {         int id = item.getitemid();          if (id == r.id.menu_share) {             intent myintent = new intent(getactivity(),loginactivity.class);             startactivity(myintent);         }else{             intent myintent = new intent(getactivity(),signupactivity.class);             startactivity(myintent);         }          return super.onoptionsitemselected(item);     }       @override     public void oncreateoptionsmenu(menu menu, menuinflater inflater) {         super.oncreateoptionsmenu(menu, inflater);         inflater.inflate(r.menu.menu_main, menu);     } 

your fragment should have these 2 methods handle menu: oncreateoptionsmenu , onoptionsitemselected onclick stuff in latter.

for example:

@override public boolean onoptionsitemselected(menuitem item) {     int id = item.getitemid();      if (id == r.id.action_settings) {         //todo     } else if (id == r.id.menu_share) {         //todo     }      return super.onoptionsitemselected(item); } 

edit

don't forget sethasoptionsmenu(true) fragment (thanks)


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -