2015-07-10 53 views
-1

我正在使用导航抽屉,并且我在所有片段中都有操作栏,我试图在操作栏中添加搜索图标,但未显示,应用程序未崩溃,但即使图标在我的操作栏中也不可见,以下是我的该代码任何一个可以帮助如何在操作栏中添加搜索图标?

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:showAsAction="never" 
     android:icon="@drawable/searchs" 
     android:title="@string/action_settings"/> 



</menu> 

MainActivity

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
+0

看到此链接http://stackoverflow.com/questions/30566886/searchview-in-actionbar-appcompat/30566958#30566958 –

回答

1

我认为这是因为:

android:showAsAction="never"

的而不是使用:

android:showAsAction="ifRoom"

+0

接受并投票了 – Aditya

+0

是有可能设置CLIK listner图标什么我设置在行动栏? – Aditya

+0

我不知道添加监听器,因为我仍然是初学者,但我认为你正在寻找这样的[链接](https://developer.android.com/training/basics/actionbar/adding-buttons。 html#Respond) –

1

ShowAsAction必须始终或ifRoom。

always makes sure it is always present. 
ifRoom pushes the menuitem into overflow menu if space is not available. 

,如果你的目的是搜索功能附加到您的活动,你应该考虑使用SearchView widget而不是使用和图标,并在其上点击操作。

+0

谢谢我投票 – Aditya

1

@Override 
 
    \t public boolean onCreateOptionsMenu(Menu menu) { 
 
    \t \t getMenuInflater().inflate(R.menu.menu_contact, menu); 
 
    \t \t MainActivityAfterLogin.menu = menu; 
 

 
    \t \t MenuItem searchItem = menu.findItem(R.id.menu_search); 
 
    \t \t SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
 
    \t \t SearchView searchView = (SearchView) MenuItemCompat 
 
    \t \t \t \t .getActionView(searchItem); 
 
    \t \t searchView.setSearchableInfo(searchManager 
 
    \t \t \t \t .getSearchableInfo(getComponentName())); 
 
    \t \t searchView.setOnQueryTextListener(new OnQueryTextListener() { 
 

 
    \t \t \t @Override 
 
    \t \t \t public boolean onQueryTextSubmit(String text) { 
 

 
    \t \t \t \t return false; 
 
    \t \t \t } 
 

 
    \t \t \t @Override 
 
    \t \t \t public boolean onQueryTextChange(String text) { 
 

 
    \t \t \t \t return false; 
 
    \t \t \t } 
 
    \t \t }); 
 

 
    \t \t return true; 
 
    \t } 
 

 

 

 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
 
     xmlns:tools="http://schemas.android.com/tools" 
 
     tools:context="${relativePackage}.${activityClass}" > 
 

 
     
 
     <item 
 
      android:id="@+id/menu_search" 
 
      android:title="@string/action_search" 
 
      app:actionViewClass="android.support.v7.widget.SearchView" 
 
      app:showAsAction="always"/> 
 

 
    </menu> 
 

 
add this in manifest 
 

 
<activity 
 
      android:name="**mainactivity**" 
 
      android:label="@string/title_activity_invited_person_list" > 
 
      <meta-data 
 
       android:name="android.app.default_searchable" 
 
       android:value="**result activity**" /> 
 
     </activity> 
 
     <activity 
 
      android:name="com.w3nuts.rsvp.main.SearchResultActivity" 
 
      android:label="@string/title_activity_search_result" > 
 
      <intent-filter> 
 
       <action android:name="android.intent.action.SEARCH" /> 
 

 
       <category android:name="android.intent.category.DEFAULT" /> 
 
      </intent-filter> 
 

 
      <meta-data 
 
       android:name="android.app.searchable" 
 
       android:resource="@xml/searchable" /> 
 
     </activity>

+0

谢谢我投票 – Aditya

相关问题