带有操作栏sherlock的菜单

时间:2012-08-13 09:49:24

标签: android menu actionbarsherlock

我需要一个示例或教程 关于如何使用操作栏sherlock添加菜单项

当我使用简单菜单时 与进口

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

当我打电话

@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);
        }

    }

然后我得到了无法覆盖SherlockActivity错误的最终方法。

3 个答案:

答案 0 :(得分:49)

您必须使用Menu包中的MenuInflaterMenuItemcom.actionbarsherlock.view类:

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包含大量样本。

答案 1 :(得分:3)

我在上面使用了@StenaviN的答案但遇到了onContextItemSelected的问题。 This post为我解决了这个问题。

基本上,你只需要使用

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

而不是

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

答案 2 :(得分:3)

我在上面使用了@Matt的答案但遇到了onContextItemSelected的问题。

基本上,你只需要使用

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

而不是

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