【发布时间】:2013-07-17 22:10:16
【问题描述】:
我正在关注此relatively simple tutorial,了解如何手动启动SearchableActivity,以便我可以从中获取result。
他基本上是将base Activity(Activity A)设置为可搜索的Activity(在清单中),以便它接收搜索意图,然后手动启动真正的搜索Activity (活动 B)startActivityForResult,
修改清单后,他只有一个代码块。我的问题:
你把这段代码放在哪里?
private void handleIntent(Intent intent) {
// Get the intent, verify the action and get the query
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
// manually launch the real search activity
final Intent searchIntent = new Intent(getApplicationContext(),
MySearchActivity.class);
// add query to the Intent Extras
searchIntent.putExtra(SearchManager.QUERY, query);
startActivityForResult(searchIntent, ACTIVITY_REQUEST_CODE);
}
Activity A 还是 B?你怎么称呼它?
额外信息 - 我目前的表现如何 - 这会被删掉吗?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
MenuItem searchItem = menu.findItem(R.id.menu_search);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setupNewSearchView(searchItem, searchManager);
}
return true;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupNewSearchView(final MenuItem searchItem, SearchManager searchManager) {
android.widget.SearchView searchView = (android.widget.SearchView) searchItem.getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true);
}
【问题讨论】:
标签: android android-intent android-activity android-searchmanager