4

這可以被看作是一個擴展的這個Question搜索查看窗口小部件沒有出現在動作條

我加入以下的代碼來獲得一個搜索查看的Widget

RES /菜單/ main_activity_actions.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- Search, should appear as action button --> 
    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      android:showAsAction="always" 
      android:actionViewClass="android.support.v7.widget.SearchView" /> 
    <!-- Settings, should always be in the overflow --> 
    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:showAsAction="never" /> 
</menu> 

Mainactivity.java

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main_activity_actions, menu); 
     MenuItem searchItem = menu.findItem(R.id.action_search); 
     SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
     System.out.println("TESTING: "+searchView); 



     return super.onCreateOptionsMenu(menu); 
    } 

--- 
--- 

} 

該應用程序顯示正常,但觸摸搜索按鈕什麼也沒有顯示出來。

Screen shot

已設置的SDK版本如下:(4.0.3 -4.2.2)

android:minSdkVersion="15" 
android:targetSdkVersion="17" 

回答

15

更改您菜單,

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto"> 

    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      yourapp:actionViewClass="android.support.v7.widget.SearchView" 
      yourapp:showAsAction="always" /> 

</menu> 
+1

這裏的修改是添加了yourapp的xmlns,並且該項目上的最後兩個屬性的名稱空間已更改(以防其他任何人遇到困難時)。 http://stackoverflow.com/questions/18099221/action-bar-not-showing-action-view-icons建議有兩個。 – hajamie

0

你錯過了「 collapseActionView「:

app:showAsAction="ifRoom|collapseActionView"