0

メインアクティビティに検索ウィジェットを実装しました..そして、私のMainActivityはすべての検索機能を処理しています..クエリが実行されると、結果は必要に応じて表示されます..しかし、本当の問題は、検索クエリの結果が表示されている間です.基本的なMainActivityの内容に戻りたい場合は、ホーム/アップボタンまたはデバイスの戻るボタンを押してみます...ホーム/アップボタンを押しても何も起こりません..単に開いている検索ウィジェットが折りたたまれます...しかし、アプリを終了する戻るボタン..

私が欲しいのは..検索内容が表示された後、アプリを終了せずに 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>

UPDATE 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