/ / शर्लकफ्रैगमेंट (क्लासकैस्टैसेप्शन) से एक्शनबेर मेनू मुद्रास्फीति की त्रुटि

शेरलाकफ्रैगमेंट (क्लासकास्टएक्सप्शन) से एक्शनबार मेनू मुद्रास्फीति त्रुटि - एंड्रॉइड, एंड्रॉइड-एक्शनबार, एक्शनबार्सहेलॉक, क्लासकास्टेसेप्शन

मैं के समाधान का उपयोग करने की कोशिश कर रहा हूँ ये पदमेरे ActionBar में स्पिनर रखने के लिए। मैं पहली बार ActionBar के NAVIGATION_MODE_LIST का उपयोग कर रहा था, लेकिन मैं नहीं चाहता कि स्पिनर गर्त दृश्यों को नेविगेट करने के लिए उपयोग किया जाए (मेरे पास इसके लिए टैब होंगे)। इसलिए मैंने 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>

और फिर, इसे मेरे टुकड़े (शेरलॉकफ्रैगमेंट) से भड़काने की कोशिश की

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 पर नहीं डाला जा सकता

कोई उपाय ?

उत्तर:

उत्तर № 1 के लिए 7

आपको कॉल करने की ज़रूरत है getActionView() परिणामी आइटम से वापस आ गया findItem() उस दृश्य तक पहुँचने के लिए। वहां से आप इसमें फेरबदल कर सकते हैं।

आप केवल विशेष रूप से जाँच योग्य वस्तुओं के साथ एक उप-मेनू का उपयोग करने पर विचार करना चाह सकते हैं।