0

我已经在 Main Activity 中实现了我的搜索小部件。我的 MainActivity 正在处理所有搜索功能。当执行查询时,结果会根据需要出现。但真正的问题是搜索查询结果是可见的如果我想返回到基本的 MainActivity 内容,那么我尝试按下 Home/Up 按钮或设备 Back 按钮...按 Home/Up 按钮没有任何反应..只是打开的搜索小部件折叠...但按后退按钮应用程序退出..

我想要的是..我想在显示搜索内容后返回 MainActivity 中的基本启动结果而不退出应用程序..

这是我的 Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.pockettutsforcosm"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="20" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:parentActivityName=".MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

    <meta-data
        android:name="android.app.default_searchable"
        android:value=".MainActivity" />
</application>

</manifest>

更新 MainActivity 源 -

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (!mNavigationDrawerFragment.isDrawerOpen()) {
        // Only show items in the action bar relevant to this screen
        // if the drawer is not showing. Otherwise, let the drawer
        // decide what to show in the action bar.
        getMenuInflater().inflate(R.menu.main, menu);

        // Associate searchable configuration with the SearchView
SearchManager searchManager =(SearchManager)getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        // Assumes current activity is the searchable activity
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        // Do not iconify the widget; expand it by default
        searchView.setIconifiedByDefault(false);
        searchView.setSubmitButtonEnabled(true);
        restoreActionBar();
        return true;
    }
return super.onCreateOptionsMenu(menu);}

我正在使用以下代码处理它-

@Override
protected void onNewIntent(Intent intent) 
{
    setIntent(intent);
    handleIntent(intent);
}

private void handleIntent(Intent intent) {
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String searchText = intent.getStringExtra(SearchManager.QUERY);
        doMySearch(searchText);

        // Do work using string

    }
}

private void doMySearch(String searchText)
{
    c = dbOpen.getMySearchFromDB(searchText);
    showListContent(c);
}

我正在调用-handleIntent(getIntent); 在 MainActivity 的 onCreate()

4

0 回答 0