菜单与操作栏福尔摩斯(Menu with action bar sherlock)

2019-07-30 23:14发布

我需要一个例子或如何添加与操作栏福尔摩斯菜单项教程

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

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错误的最后一个方法。

Answer 1:

你必须使用MenuMenuInflaterMenuItem类从com.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含有大量的样本。



Answer 2:

我用@StenaviN的回答以上,但遇到了与onContextItemSelected问题。 这篇文章解决了这个问题对我来说。

基本上,你只需要使用

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

代替

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


Answer 3:

我用@马特的答案,但上面跑进onContextItemSelected问题。

基本上,你只需要使用

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

代替

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


文章来源: Menu with action bar sherlock