1

だから私がやりたいのは、誰もが知っているメニューボタンを右上隅に表示することです。

オンラインで検索したところ、アクションバー Sherlock が私のニーズに合っていることがわかりました。

現在のメニューのイメージ

彼の写真からわかるように、私が使用するコードは、デザインに濃い青色の部分を追加します (素晴らしいペイント スキルを使用して赤い四角形で示したもの)。緑色の円であるボタンが必要です。緑の矢印 (素敵な映画:D) が指す領域に配置します。

これを表示するために使用した唯一のコードは以下のとおりで、Sherlock のデモから取得したものです。

ActionMode mMode;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mMode = startActionMode(new AnActionModeOfEpicProportions());

}

private final class AnActionModeOfEpicProportions implements ActionMode.Callback {
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            //Used to put dark icons on light action bar
     //       boolean isLight = SampleList.THEME == R.style.Theme_Sherlock_Light;

            menu.add("Feedback")
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

            menu.add("Share")
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

            menu.add("Preferences")
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

            menu.add("Refresh")
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            Toast.makeText(AndroidMenu.this, "Got click: " + item, Toast.LENGTH_SHORT).show();
            mode.finish();
            return true;
        }

        @Override
        public void onDestroyActionMode(ActionMode mode) {
        }
    }

そのデザインがどこから来たのか(おそらくSherlockフレームワーク)、どうすれば好きなように変更できるのかわかりません...

アイデアはありますか?

編集:

私が見つけた答えは、私の目標に別のシャーロック サンプルを使用することです。

public class SubMenus extends SherlockActivity {
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        SubMenu subMenu1 = menu.addSubMenu("Action Item");
        subMenu1.add("Sample");
        subMenu1.add("Menu");
        subMenu1.add("Items");

        MenuItem subMenu1Item = subMenu1.getItem();
        subMenu1Item.setIcon(R.drawable.ic_title_share_default);
        subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        SubMenu subMenu2 = menu.addSubMenu("Overflow Item");
        subMenu2.add("These");
        subMenu2.add("Are");
        subMenu2.add("Sample");
        subMenu2.add("Items");

        MenuItem subMenu2Item = subMenu2.getItem();
        subMenu2Item.setIcon(R.drawable.ic_compose);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setTheme(SampleList.THEME); //Used for theme switching in samples
        super.onCreate(savedInstanceState);
        setContentView(R.layout.text);
        ((TextView)findViewById(R.id.text)).setText(R.string.submenus_content);
    }
4

1 に答える 1