2016-03-17 307 views
3

我下面的屏幕上工作使用搜索查看工具欄中:如何在點擊搜索圖標

1截圖

Screenshot

這裏在工具欄上,我有一個搜索圖標要添加此搜索圖標,我使用了以下代碼:

menu_friend_list_activity.xml

 <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <item 
      android:id="@+id/action_search" 
      android:icon="@drawable/search" 
      android:orderInCategory="100" 
      android:title="@string/action_search" 
      app:actionViewClass="android.support.v7.widget.SearchView" 
      app:showAsAction="always" /> 
    </menu> 

碼內活動

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.menu.menu_friend_list_activity, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
       case R.id.action_search: 
       Toast.makeText(getApplicationContext(), "Search button clicked", Toast.LENGTH_SHORT).show(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 

    } 

在點擊搜索圖標我想顯示在工具欄的搜索查看(如果我沒有什麼錯在這裏)。總之我要實現以下畫面:

Sceenshot

請告訴我如何可以實現this.Search將是不同的片段不同。

回答

0

你無法正確充氣的菜單,這是你應該如何誇大它來得到你想要的

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.yourmenyxml, menu); 

    item = menu.findItem(R.id.action_search); 
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(item); 
+0

我在這裏有一個類似的問題:http://stackoverflow.com/questions/43702055/android-how-do-i-get-searchview-close-button-to-return-to-search-edittext?noredirect= 1個#comment74449117_43702055。任何想法或想法如何解決? – AJW

4

試試這個

@Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.search_actions, menu); 

      MenuItem searchViewItem = menu.findItem(R.id.action_search); 
      // Get the SearchView and set the searchable configuration 
      SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
      SearchView searchView = (SearchView) searchViewItem.getActionView(); 
      searchView.setQueryHint("Search for Product,Brands..."); 
      searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
      searchView.setIconifiedByDefault(false);// Do not iconify the widget; expand it by defaul 

      SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
       public boolean onQueryTextChange(String newText) { 
        // This is your adapter that will be filtered 
        Toast.makeText(getApplicationContext(),"textChanged :"+newText,Toast.LENGTH_LONG).show(); 

        return true; 
       } 

       public boolean onQueryTextSubmit(String query) { 
        // **Here you can get the value "query" which is entered in the search box.** 

        Toast.makeText(getApplicationContext(),"searchvalue :"+query,Toast.LENGTH_LONG).show(); 

        return true; 
       } 
      }; 
      searchView.setOnQueryTextListener(queryTextListener); 

      return true; 
     } 
-1

只實現在片段搜索,而不是屏幕活動。