<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchActivity" />
</intent-filter>
</activity>
<activity
android:name=".SearchActivity"
>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
MainActivity tem barra de ferramentas com widget de pesquisa.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
ComponentName component = new ComponentName(this, SearchActivity.class);
searchView.setSearchableInfo(searchManager.getSearchableInfo(component));
searchView.setSubmitButtonEnabled(true);
return true;
}
E, finalmente, SearchActivity
public class SearchActivity extends AppCompatActivity {
TextView tvSearch;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
tvSearch = (TextView) findViewById(R.id.tvSearchQuery);
handleIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
handleIntent(intent);
}
private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
doMySearch(query);
}
}
private void doMySearch(String query) {
tvSearch.setText(query);
}
}
Fiz esse código olhando o android developer, mas não consigo definir o id.tvSearchQuery para pesquisar na Book_Activity que tem o getExtras input da da Arraylist de ebooks da Main_Activity, é simples já fiz o menu inflater só que retorna somente o que eu digito na caixa de pesquisa, quem responder poderá ser meu tuto no futuro, estou avançando muito em programação ou se precisar de troca nas matérias que leciono.