Я пытаюсь использовать решение this post, чтобы иметь Spinner в моем ActionBar. Я впервые использовал NAVIGATION_MODE_LIST ActionBar, но я не хочу, чтобы spinner использовался для навигации по корытовым представлениям (у меня будут вкладки для этого). Так я создал 2 XML:Ошибка взлома меню ActionBar от SherlockFragment (ClassCastException)
mode_spinner.xml
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
options.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_mode"
android:actionLayout="@layout/mode_spinner"
android:showAsAction="ifRoom"/>
</menu>
, а затем попытался надуть его из моего фрагмента (SherlockFragment)
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.options, menu);
Spinner spinner = (Spinner) menu.findItem(R.id.menu_mode);
spinner.setAdapter(mSpinnerAdapter);
super.onCreateOptionsMenu(menu, inflater);
}
во время выполнения, я получил эту ошибку:
java.lang.ClassCastException: com.actionbarsherlock.internal.view.menu.MenuItemWrapper не может быть приведен к android.widget.Spinner
любая идея?
большое спасибо! вот исправленная строка: 'Spinner spinner = (Spinner) menu.findItem (R.id.menu_mode) .getActionView();' – elgui