利用searchview搜索应用程序

 

  
  
  
  
  1. package com.example.excerciseforsearchview; 
  2.  
  3. import java.util.List; 
  4.  
  5. import android.os.Bundle; 
  6. import android.app.Activity; 
  7. import android.app.SearchManager; 
  8. import android.app.SearchableInfo; 
  9. import android.content.Context; 
  10. import android.view.Menu; 
  11. import android.view.MenuItem; 
  12. import android.widget.SearchView; 
  13. import android.widget.TextView; 
  14. import android.widget.Toast; 
  15.  
  16. public class MainActivity extends Activity implements SearchView.OnQueryTextListener{ 
  17.     TextView textView; 
  18.     private SearchView searchView; 
  19.     private SearchableInfo searchableInfo; 
  20.     private SearchableInfo shInfo; 
  21.     @Override 
  22.     protected void onCreate(Bundle savedInstanceState) { 
  23.         super.onCreate(savedInstanceState); 
  24.         setContentView(R.layout.activity_main); 
  25.         textView=(TextView) findViewById(R.id.text); 
  26.     } 
  27.      
  28.      
  29.  
  30.     @Override 
  31.     public boolean onCreateOptionsMenu(Menu menu) { 
  32.         // Inflate the menu; this adds items to the action bar if it is present. 
  33.         getMenuInflater().inflate(R.menu.main, menu); 
  34.         MenuItem menuItem=menu.findItem(R.id.action_settings); 
  35.         //下面一行代码的作用是Returns the currently set action view for this menu item. 
  36.         //要使用menuItem的getActionView方法需在设置menu的xml文件item里添加  
  37.         //android:actionViewClass="android.widget.SearchView" 
  38.         searchView=(SearchView) menuItem.getActionView(); 
  39.         searchView.setOnQueryTextListener(this); 
  40.         searchAppInfo(); 
  41.         return true
  42.     } 
  43.  
  44.     private void searchAppInfo() { 
  45.         // TODO Auto-generated method stub 
  46.         SearchManager searchManager=(SearchManager) getSystemService(Context.SEARCH_SERVICE); 
  47.         if (searchManager!=null) { 
  48.             //Returns a list of the searchable activities that can be included in global search. 
  49.             //把所有可以被搜索到的Searchable activities列出 
  50.             List<SearchableInfo> searchableInfos=searchManager.getSearchablesInGlobalSearch(); 
  51.             //Gets information about a searchable activity 
  52.             //根据ComponentName得到具体搜到的searchableInfo 
  53.             searchableInfo=searchManager.getSearchableInfo(getComponentName()); 
  54.             for (SearchableInfo sInfo:searchableInfos) { 
  55.                 if (sInfo.getSuggestAuthority()!=null&&sInfo.getSuggestAuthority().startsWith("application")) { 
  56.                     searchableInfo=sInfo; 
  57.                 } 
  58.             } 
  59.              
  60.         } 
  61.         //Sets the SearchableInfo for this SearchView. 
  62.         //Properties in the SearchableInfo are used to display 
  63.         //labels, hints, suggestions, create intents 
  64.         //for launching search results screens and controlling other affordances such as a voice button. 
  65.         searchView.setSearchableInfo(searchableInfo); 
  66.          
  67.          
  68.     } 
  69.  
  70.     @Override 
  71.     public boolean onQueryTextChange(String newText) { 
  72.         // TODO Auto-generated method stub 
  73.         return false
  74.     } 
  75.  
  76.     @Override 
  77.     public boolean onQueryTextSubmit(String query) { 
  78.         // TODO Auto-generated method stub 
  79.         textView.append(query); 
  80.         return false
  81.     } 
  82.  

由于本人水平有限,错在所误难免,欢迎批评指正。

你可能感兴趣的:(搜索应用程序)