Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Overriding onOptionsItemSelected from SherlockFragmentActivity

Yesterday, I found a great library that allowed me to have a "facebook menu" with a button on the top left of an action bar which, when pressed, would slide in a menu of items from the left.

The problem is that I wish to make use of the ActionBarSherlock library as well to make sure that my application is backwards compatible with the action bar. When using the library I, among other things, need to override onOptionsItemSelected as such :

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    int id = item.getItemId();

    if (id == android.R.id.home) {

        rbmView.toggleMenu();

        return true;

    } else {
        return super.onOptionsItemSelected(item);
    }
}

Now I went into the library and saw that the developer had made onOptionsItemSelected final. I removed it and tried overriding it again only to find that the product was that whenever I press the button nothing happens. Nothing at all.

Any idea on how I would go about using the darvds_ribbonmenu library along with actionbarsherlock?

like image 449
CodePrimate Avatar asked Jun 06 '12 06:06

CodePrimate


2 Answers

Turns out that when using ABS you will need to specify the namespace of MenuItem to make sure that you're overriding the correct method. My solution was as follows :

@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) 
{
    int id = item.getItemId();
    Log.d("item ID : ", "onOptionsItemSelected Item ID" + id);
    if (id == android.R.id.home) {
        rbmView.toggleMenu();

        return true;

    } else {
        return super.onOptionsItemSelected(item);
    }
}
like image 164
CodePrimate Avatar answered Nov 20 '22 04:11

CodePrimate


Change import android.view.MenuItem; to import com.actionbarsherlock.view.MenuItem;. Otherwise, you're just using an entirely different MenuItem than the one you're importing.

like image 29
Muz Avatar answered Nov 20 '22 06:11

Muz