Snažím sa použiť riešenie tento príspevok, aby som mal na svojom ActionBar Spinner. Najprv som použil NAVIGATION_MODE_LIST ActionBar, ale nechcem, aby sa točivý stroj používal na navigáciu cez zobrazenia (budem mať karty na to). Takže som vytvoril 2 xml:
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>
a potom sa ho snažil nafúknuť z môjho fragmentu (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);
}
pri behu, mám túto chybu:
java.lang.ClassCastException: com.actionbarsherlock.internal.view.menu.MenuItemWrapper nemôže byť odovzdaný do android.widget.Spinner
nejaká myšlienka?
odpovede:
7 pre odpoveď č. 1Musíte zavolať getActionView()
na výslednú položku vrátenú z findItem()
prístup k tomuto zobrazeniu. Odtiaľ môžete manipulovať.
Možno budete tiež chcieť zvážiť jednoduché použitie podmenu s výlučne kontrolovateľnými položkami.