लौटाता है मैंने गतिविधि में एक खोज बार जोड़ने के लिए this Android guide का पालन किया है।searchManager.getSearchableInfo (getComponentName()) शून्य पर
रेस/मेनू/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/search"
android:title="@string/menu_search"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.widget.SearchView" />
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/menu_settings"
android:icon="@drawable/ic_menu_settings"/>
</menu>
रेस/xml/searchable.xml: मैनिफ़ेस्ट फ़ाइल में
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" />
गतिविधि प्रविष्टि:
<activity
android:name="de.ivu.realtime.app.activity.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<meta-data
android:name="android.app.default_searchable"
android:value="de.ivu.realtime.app.activity.MainActivity" />
</activity>
सेटअप इस तरह दिखता है
और मुख्य गतिविधि में कोड:
@SuppressLint("NewApi")
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
this.getMenuInflater().inflate(R.menu.activity_main, menu);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());
searchView.setSearchableInfo(searchableInfo);
}
return true;
searchManager.getSearchableInfo(getComponentName());
पर कॉल हमेशा null
पर लौटाता है। मैंने इसे स्टैक ओवरफ्लो पर अन्य प्रश्नों में देखा है, हालांकि, मेरे द्वारा लागू किए गए समाधानों में से कोई भी मेरे मामले पर लागू नहीं होता है।
- मेनू एक्सएमएल एक
<?xml version="1.0" encoding="utf-8"?>
हैडर - खोजा एक्सएमएल कोई हार्ड-कोडेड है तार
- मेनू आइटम का नाम बदलने से काम नहीं करता
- सफाई और पुनर्निर्माण चाल नहीं करता है या तो
किसी भी मदद की बहुत सराहना की है। धन्यवाद!
संभावित डुप्लिकेट [कार्य करने के लिए एक्शनबार में सर्चव्यू नहीं मिल सकता] [http://stackoverflow.com/questions/11699206/cannot-get-searchview-in-actionbar-to-work) – Krizai