2013-10-17 71 views
0

我想设置背景(类似于EditText Background)到我的ActionBar SearchItem。这是目前的行动栏。为Actionbar设置背景SearchItem

enter image description here

我想这样的背景绘制设置为。

enter image description here

下面是如何创建searchItem

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

    MenuItem searchItem = menu.findItem(R.id.search); 
    SearchManager searchManager = (SearchManager) getActivity() 
      .getSystemService(Context.SEARCH_SERVICE); 

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { 
     SearchView searchView = (SearchView) searchItem.getActionView(); 
     searchView.setSearchableInfo(searchManager 
       .getSearchableInfo(getActivity().getComponentName())); 
     searchView.setIconified(true); 
     searchView.setSubmitButtonEnabled(true); 
     searchView.setOnQueryTextListener(new OnQueryTextListener() { 

      @Override 
      public boolean onQueryTextSubmit(String query) { 
       setFilter(query); 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String query) { 
       setFilter(query); 
       return false; 
      } 
     }); 
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     SearchView searchView = (SearchView) searchItem.getActionView(); 

     searchView.setSearchableInfo(searchManager 
       .getSearchableInfo(getActivity().getComponentName())); 
     searchView.setIconified(true); 
     searchView.setSubmitButtonEnabled(true); 
     searchView.setOnQueryTextListener(new OnQueryTextListener() { 

      @Override 
      public boolean onQueryTextSubmit(String query) { 
       setFilter(query); 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String query) { 
       setFilter(query); 
       return false; 
      } 
     }); 
    } 
} 

我试着通过searchView.setBackgroundDrawable设置背景,但我没有得到什么,我喜欢来实现。

回答