在Spinner下拉列表中的ActionBar中显示带有drawables的图标

时间:2015-05-25 05:17:52

标签: android xml android-actionbar android-spinner android-drawable

我试图一次拼凑几个功能并遇到问题,但我已经关闭了。我在ActionBar中需要一个共享图标,单击该图标时,会显示一个Spinner下拉菜单,其中包含3个图标列表(无文本)。我没有使用自定义适配器,因为它似乎我不需要它(如果我错了,请纠正我),所以我试图使用Spinner的一些默认代码来创造它。我能够在ActionBar中获得Spinner,但它只显示我正在使用的资源文件数组的名称,而不是drawable本身。另外,图标没有显示。我已经在这2天了,无法从其他来源获得帮助。他们都与我的情况不同。如何显示ActionBar图标以及Spinner drawables显示?感谢。

此处,微调器显示列表标题的顶部而不是共享图标

enter image description here

此处,微调器下拉列表由可绘制名称组成,而不是可绘制本身

enter image description here

PhotoViewerActivity.java

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu items for use in the action bar
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_share, menu);

        Spinner shareSpinner = (Spinner) menu.findItem(R.id.action_social_share).getActionView();

        spinnerAdapter = ArrayAdapter.createFromResource
                (this, R.array.icons,
                        android.R.layout.simple_spinner_dropdown_item);

        shareSpinner.setAdapter(spinnerAdapter);
        shareSpinner.setOnItemSelectedListener(this);

        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Makes the UP caret go back to the previous fragment MakeCuteHome
        switch (item.getItemId()) {
            case android.R.id.home:
                android.app.FragmentManager fm = getFragmentManager();
                fm.popBackStack();
                finish();
                return true;
            case R.id.action_social_share:


                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

spinner_array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <array name="icons">
        <item>@drawable/ic_facebook</item>
        <item>@drawable/ic_twitter</item>
        <item>@drawable/ic_sms</item>
    </array>

</resources>

menu_share.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- Share, should appear as action button -->
    <item android:id="@+id/action_social_share"
        android:orderInCategory="0"
        android:icon="@drawable/ic_action_social_share"
        android:title="Share"
        android:actionLayout="@layout/action_share"
        app:showAsAction="always"
        app:actionViewClass="android.widget.Spinner"/>

</menu>

action_share.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/share_spinner"
        android:layout_gravity="center_horizontal"
        android:spinnerMode="dropdown"/>
</LinearLayout>

0 个答案:

没有答案