1

プロジェクトで ActionBarSherlock を使用していますが、アクション バー内に 1 つ以上の項目を追加する必要がある場合があります。

この BaixadosFragment クラス (SherlockFragment を拡張する) では、次のコードを使用していますが、正常に動作します。

@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater)
{
    inflater.inflate(R.menu.main, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.refresh:
            refresh();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

この場合、更新ボタンを追加しています。魔女は main.xml 内で孤独です

しかし、私は CupomDetalheActivity で同じことをしたいのですが (共有ボタンを追加しますが)、魔女は代わりに SherlockFragmentActivity を拡張します。したがって、「onCreateOptionsMenu」は署名が異なるため、オーバーライドできません(以下):

//this is inside SherlockFragmentActivity
public final boolean onCreateOptionsMenu(android.view.Menu menu) {
    return true;
}
//this is inside SherlockFragment
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    //Nothing to see here.
}

SherlockFragmentActivity では、インフレータを使用して共有ボタンを含む xml をどこで表示できるかさえわかりません...アイデアや提案を大いに感謝します...

[編集] DroidTの提案によると、これはうまくいきました:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.share, menu);
    super.onCreateOptionsMenu(menu);
    return true;
}
4

2 に答える 2