如何在提交搜索时阻止关闭Android搜索对话框?

时间:2018-04-23 10:34:41

标签: android

我正在使用Android搜索对话框。

我的主要活动有行动栏项目搜索。我在项目点击时打开我的可搜索活动: -

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

        case R.id.activity_search_menu_search_item:

            startActivity(new Intent(this, SearchableActivity.class));

            return true;

        default:

            return super.onOptionsItemSelected(item);

    }

}

在onCreate可搜索活动中打开搜索对话框,如果搜索对话框被顶部后退箭头或后退按钮关闭,则关闭可搜索活动: -

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_searchable);

    onSearchRequested();

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

    searchManager.setOnDismissListener(new SearchManager.OnDismissListener() {

        @Override
        public void onDismiss() {

            finish();

        }

    });

}

我已在清单中将可搜索的活动声明为singleTop: -

<activity android:name=".SearchableActivity"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

在可搜索活动的onNewIntent中获取搜索查询: -

 @Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {

        String query = intent.getStringExtra(SearchManager.QUERY);

        Log.e("Here", "new intent = "+query);

    }

}

现在,当我输入搜索查询并单击键盘的搜索图标时,搜索对话框将关闭(我希望它保持打开并在onNewIntent方法中获取搜索查询),然后调用onDismissListener并且活动也将关闭。我在OnNewIntent中获取搜索查询。

0 个答案:

没有答案