2011-05-25 109 views
0


是否有任何搜索欄小部件可用,就像android默認搜索欄?我只想像默認的搜索欄,即時通訊將處理搜索功能。我可以通過使用編輯文本小部件來做到這一點,但我想知道是否有任何現成的小部件可用?android中的搜索欄小部件?

回答

0

您可以使編輯文本像使用TextWatcher類的搜索欄一樣工作。

+5

有沒有例子? – vnshetty 2011-05-25 08:13:42

2

在你onCreate方法查看您可以:

onCreate方法:

// enabling action bar app icon and behaving it as toggle button 
getActionBar().setDisplayHomeAsUpEnabled(true); 
getActionBar().setHomeButtonEnabled(true); 
handleIntent(getIntent()); 

OnCreateOptionsMenu:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.feed, menu); 

    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search) 
      .getActionView(); 
    searchView.setSearchableInfo(searchManager 
      .getSearchableInfo(getComponentName())); 

    return true; 
} 

菜單:

<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="br.com.srtorcedor.FeedActivity"> 

    <item android:id="@+id/action_search" 
     android:icon="@drawable/abc_ic_search" 
     android:title="@string/search_title" 
     android:showAsAction="always" 
     android:actionViewClass="android.widget.SearchView"/> 

</menu> 

Searchable.xml

<?xml version="1.0" encoding="utf-8"?> 
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
    android:label="@string/app_label" 
    android:hint="@string/search_hint" > 
</searchable> 

在該片段中,你需要把下面的方法:

private void handleIntent(Intent intent) { 
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
     String query = intent.getStringExtra(SearchManager.QUERY); 
     doSearch(query); 
    } 
} 


public void onNewIntent(Intent intent) { 
    setIntent(intent); 
    handleIntent(intent); 
} 

private void doSearch(String queryStr) { 
    Log.i("Your search: ",queryStr); 
} 

做,你會看到搜索小部件在操作欄上。我希望它可以與你們一起工作。

+0

你將如何在doSearch方法中執行搜索 – 2017-01-30 20:22:41

+0

你沒有提供setIntent() – Takichiii 2017-06-05 01:10:33