web-dev-qa-db-ja.com

SearchViewヒントが表示されない

メインアクティビティの検索ビューにヒントテキストを表示しようとしています。 onqueryTextSubmitは、クエリの結果を表示するSearchResultsActivityという別のアクティビティを起動します。私の問題は、ヒントテキストを表示できないことです。 searchable.xmlコード

<searchable xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:hint="@string/search_hint"
        Android:label="@string/app_name"
/>

およびマニフェストコード

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme">
    <activity Android:name=".MainActivity">
        <intent-filter>
            <action Android:name="Android.intent.action.SEARCH"/>
            <action Android:name="Android.intent.action.MAIN"/>

            <category Android:name="Android.intent.category.LAUNCHER"/>
        </intent-filter>

        <meta-data
            Android:name="Android.app.default_searchable1"
            Android:value=".SearchResultsActivity"
            Android:resource="@xml/searchable"/>
    </activity>
    <activity Android:name=".SearchResultsActivity">
        <meta-data Android:name="Android.app.searchable"
                   Android:resource="@xml/searchable">
        </meta-data>
    </activity>
</application>
</manifest>

最後に私のonQueryTextSubmitコード

@Override
        public boolean onQueryTextSubmit(String query)
        {

            Anniversaries tempResults;
            tempResults = mainAnniversariesManager.searchManager.searchAnniversaries(query);

            if (tempResults.entries.size() == 0)
            {
                snackbar = Snackbar.make(findViewById(R.id.coordinator), getString(R.string.no_results_found) + query, Snackbar.LENGTH_INDEFINITE);
                snackbar.show();
                return true;
            } else
            {
                snackbar = null;
                if (!searchView.isIconified())
                {
                    searchView.setIconified(true);
                }
                menuItem.collapseActionView();

                Intent intent=new Intent(getApplicationContext(),SearchResultsActivity.class);
                Bundle args=new Bundle();
                args.putSerializable("serialized_Anniversaries",tempResults);
                intent.putExtra("args",args);
                startActivity(intent);

                return false;
            }
        }

前もって感謝します

14

SearchViewヒントテキストを追加するには、次のコードを使用します。

search.setQueryHint("Custom Search Hint");
26
AmanSinghal

app:queryHint="@string/search" app:defaultQueryHint="@string/search"を使用してみてください

8
Alexander

私にとって、解決策はどれもうまくいきませんでした。

Searchviewの編集テキストのインスタンスを取得し、そのためのヒントを設定します。

EditText et= (EditText) mSearchView.findViewById(Android.support.v7.appcompat.R.id.search_src_text);
et.setHint(context.getString(R.string.search));
1
saleh sereshki

検索可能な構成の作成

アプリバーのアクションビューとしてSearchViewを使用している場合は、setSearchableInfo(SearchableInfo)を呼び出して、検索可能な設定をSearchViewに関連付ける必要があります。

SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(sm.getSearchableInfo(getComponentName()));
0
Chaos