質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

1964閲覧

端末が回転してもSearchViewの状態を保持したい

tarofess

総合スコア127

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2015/10/26 05:42

現在縦画面でSearchViewに何か文字を入力している時に画面を横向きにすると、キーボードが消えてSearchViewから入力途中の文字も消えてしまいます。そしてSearchViewの虫眼鏡をタップすると先ほどの入力途中の文字が表示されます。
Youtubeのアプリなどのように検索途中で画面が回転しても回転前の状態がそのまま回転後にも表示されてほしいです。
これを実現するにはどうすればいいでしょうか?
どなたかわかる方がいれば教えていただきたいです。すみませんが、宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

画面の回転時は現在のactivityが破棄されます。
SearchViewなどのデフォルトで用意されているViewは画面回転前と画面回転後の状態を継続させる仕組みが実装されています。

Android の罠 [1] ちゃんと onSaveInstanceState する

投稿2015/10/26 08:30

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tarofess

2015/10/27 02:16

ご回答ありがとうございます。以下のように実装したのですが、画面回転後にSearchViewには何も表示がされませんでした。 @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (searchView.getQuery() != null) { outState.putString("searchViewText", searchView.getQuery().toString()); } } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { searchView.setQuery(savedInstanceState.getString("searchViewText"), false); } } ログを取ってみたところ、onActivityCreatedのsavedInstanceState.getString("searchViewText")ではきちんと値が取れていました。setQueryがうまく動いてくれていないようです。 どこが間違っているのでしょうか?
yona

2015/10/27 02:43

コードの内容に誤りはないように思います。 searchViewはインスタンス化していますか?
tarofess

2015/10/27 05:09

はい、インスタンス化していました。 しかし、searchView.setIconified(false);をonActivityCreated内に記述すると、SearchViewに文字が復元されました! 解決することができて良かったです。誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問