将活动更改为AppCompatActivity后,Spinner不可用

时间:2016-12-01 07:33:43

标签: android android-spinner android-menu appcompatactivity

我将myClass 的继承从activity更改为appCompatActivity 。最初有一个带有微调器的菜单,如下所示:

myClass.java

 public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.messages, menu);
    MenuItem item = menu.findItem(R.id.menuTxtSize);
    Spinner spinner = (Spinner) item.getActionView();
    int index = 1;
    spinner.setSelection(index);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    OTHER CODE

我的messages.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:title="@string/string_txt_size"
        android:id="@+id/menuTxtSize"
        android:showAsAction="always" 
        android:actionLayout="@layout/view_spinner"  />
    <item
        android:id="@+id/menu_item_refresh"
        android:showAsAction="always"
        android:title="@string/action_refresh"
        android:icon="@drawable/ic_refresh_24dp" />
</menu>

我的spinner.xml

<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:entries="@array/txt_size_values"
    />

用于微调器的数组

<string-array name="txt_size_values">
    <item>Мелко</item>
    <item>Средне</item>
    <item>Крупно</item>
</string-array>

一切都很好看

enter image description here

要转到appkompat我改变了:

1。在myClass中

Spinner spinner = (Spinner) item.getActionView();

AppCompatSpinner spinner = (AppCompatSpinner) MenuItemCompat.getActionView(item);

2. 在messeges.xml中添加 app: -namespace并添加 app:actionViewClass

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:title="@string/string_txt_size"
        android:id="@+id/menuTxtSize"
        app:showAsAction="ifRoom"
        app:actionViewClass="android.support.v7.widget.AppCompatSpinner"
        android:actionLayout="@layout/view_spinner"  />
    <item
        android:id="@+id/menu_item_refresh"
        app:showAsAction="ifRoom"
        android:title="@string/action_refresh"
        android:icon="@drawable/ic_refresh_24dp" />
</menu>

3. 我还将应用主题更改为android:theme="Theme.AppCompat"

结果我得到了以下

enter image description here

文字消失了。微调器无法点击

如何解决这个问题?感谢

0 个答案:

没有答案