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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

3142閲覧

AndroidのSharedPreferences についてです

mixmixmix

総合スコア10

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/01/19 11:15

Androidプログラミング初心者です。

SharedPreferencesを使い、入力した文字を保存して読み出したいのですが、
読み出しを行っても表示されません。
Android Studioもエラーを返してくれず、どこが間違っているかもわかりません。
助けていただけないでしょうか

よろしくお願いいたします。

public class Profile extends Activity{

private EditText editText; String text ; private SharedPreferences.Editor e ; private SharedPreferences pref ; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.prof); editText =(EditText)findViewById(R.id.Live); text = editText.getText().toString(); Button btn3 = (Button)findViewById(R.id.button); btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pref = getSharedPreferences("test", MODE_PRIVATE); e = pref.edit(); e.putString("key", text); e.commit(); Toast.makeText(getApplicationContext(), "保存しました", Toast.LENGTH_SHORT).show(); } }); Button btn4 = (Button) findViewById(R.id.button1); btn4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pref = getSharedPreferences("test",MODE_PRIVATE); String str = pref.getString("key", ""); tv =(TextView)findViewById(R.id.Road); tv.setText(str); } }); }

}

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記の処理の位置が悪いです。

Java

1text = editText.getText().toString();

上記の処理をプリファレンス保存処理の直前に変更してみて下さい。

理由は開始直後に上記の処理を行なうと、初期表示の文字列がtextに入ります。
そのため、初期表示が空の場合、空文字をプリファレンスに保存してしまいます。
その後プリファレンスから値を取得すると空文字が帰ってくるため、
結果として保存と読み取りはできているのに見た目ではわからないという現象が起きると思います。

投稿2016/01/19 11:22

編集2016/01/19 11:26
yona

総合スコア18155

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

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

mixmixmix

2016/01/19 13:06

コメントありがとうございます!! 無事解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問