Menu with action bar sherlock

2020-05-25 06:01发布

问题:

I need an example or a tutorial on how to add menu items with action bar sherlock

When I use the simple menu with the imports

import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

when I call

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.settings_menu, menu);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
        case R.id.goToSettings:
            startActivity(new Intent(this, SetPreference.class));
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }

    }

then I get the Cannot override the final method from SherlockActivity error.

回答1:

You have to use Menu, MenuInflater and MenuItem classes from com.actionbarsherlock.view package:

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.settings_menu, menu);

    return super.onCreateOptionsMenu(menu);
}

BTW, ActionBarSherlock contains a lot of samples.



回答2:

I used @StenaviN 's answer above but ran into problems with onContextItemSelected. This post solved it for me.

Basically, you just have to use

@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
    /* ... */
}

instead of

@Override
public boolean onContextItemSelected(MenuItem item) {
    /* ... */
}


回答3:

I used @Matt's answer above but ran into problems with onContextItemSelected.

Basically, you just have to use

@Override
public boolean onContextItemSelected(com.actionbarsherlock.view.MenuItem item) {
    /* ... */
}

instead of

@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
    /* ... */
}