0

検索可能な辞書を作成しており、ユーザーが SearchView で行った最新のクエリを他のアクティビティに表示したいと考えています。Android辞書の最近のオプションのように。

private void handleIntent(Intent inent) {
 if (Intent.ACTION_VIEW.equals(intent.getAction())) {
        // handles a click on a search suggestion; launches activity to show word
        Intent wordIntent = new Intent(this, WordActivity.class);
        wordIntent.setData(intent.getData());
        startActivity(wordIntent);
        finish();
    } else if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        // handles a search query
        String query = intent.getStringExtra(SearchManager.QUERY);
        SearchRecentSuggestions suggestions=new SearchRecentSuggestions(this, MySuggestionProvider.AUTHORITY, MySuggestionProvider.MODE);
        suggestions.saveRecentQuery(query, null);
        showResults(query);
    }
}

ShowResult は、検索アクティビティのクエリ候補を表示します。最近のクエリを他のアクティビティに表示したいのですが、どうすればよいですか?

4

2 に答える 2

0

ContentResolver を介して保存されたクエリにアクセスできます。

ContentResolver contentResolver = getApplicationContext().getContentResolver();

String contentUri = "content://" + MySuggestionProvider.AUTHORITY + '/' + SearchManager.SUGGEST_URI_PATH_QUERY;

Uri uri = Uri.parse(uriStr);

Cursor cursor = contentResolver.query(uri, null, null, new String[] { null }, null);

受信したカーソルを使用して、ListView にデータを入力します。showResults() コードを使用して別のアクティビティを作成します。

于 2013-11-08T15:24:45.267 に答える
0

このコードが Shared Preference に役立つかもしれません。

SharedPreferences sPreferences = getSharedPreferences("tushar", Context.MODE_PRIVATE);
Editor sEditor = sPreferences.edit();

Set<String> setName = new HashSet<String>();
setName.add("tushar");
setName.add("pandey");
setName.add("Ram");
setName.add("Shiva");

sEditor.putStringSet("ko", setName);
sEditor.commit() ;

Log.i("hello","tushar:pandey") ;
Set<String> setName_ = sPreferences.getStringSet("tushar", setName);
Log.i(setName_.toString(),"tushar:pandey") ;
于 2013-10-14T12:58:23.950 に答える