Android ActionBarShelock onOptionsItemSelected

actionbarsherlock, android, menu, menuitem

Solution

You can set `OnMenuItemClickListener` on your menu items like this:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    menu.add("Share")
        .setOnMenuItemClickListener(this.mShareButtonClickListener)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    // Other items...

    return super.onCreateOptionsMenu(menu);
}

Then you create your OnMenuItemClickListener:

OnMenuItemClickListener mShareButtonClickListener = new OnMenuItemClickListener() {

    @Override
    public boolean onMenuItemClick(MenuItem item) {  

         // Example of action following your code
         new share(YouActivity.this).execute(YouActivity.this.image_url);
         return false;
    }
};

Problem

I using action bar by sherlock. I'm trying to implement it into my app. But seems like I am missing something to make it to work. Please check on my codes. My app doesnt do anything when i tap on the action buttons. Below are my codes and my xml. ``` @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.activity_main, menu); menu.add("Share") .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); menu.add("Save") .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); menu.add("Set") .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.share: new share(this).execute(image_url); return true; case R.id.save: new save(this).execute(image_url); return true; case R.id.set: new set(this).execute(image_url); return true; default: return super.onOptionsItemSelected(item); } } ``` My menu xml ``` <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/share" android:title="@string/share"/> <item android:id="@+id/save" android:title="@string/save"/> <item android:id="@+id/set" android:title="@string/set"/> </menu> ```

Original source