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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

2回答

4614閲覧

android SharedPreferences 使い方 保存方法

shinshin

総合スコア37

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

0クリップ

投稿2014/10/15 13:25

質問よろしくお願いします。

まだまだ勉強したての初心者です。

androidの開発中でゲームを作成していて、
今回のゲーム結果をA部分にタイム表示し、それをBの部分に保存(前回のデータを上回っていたら書き換え)
という風にしたいのですが、まず保存自体が四苦八苦しておりできません。

lang

1コード 2 3SharedPreferences pref = this.getSharedPreferences("user_data", Context.MODE_PRIVATE); 4 5 // プリファレンスに書き込むためのEditorオブジェクト取得 6 Editor editor = pref.edit(); 7 // user_id というキーで値を保存 8 editor.putString("user_id", inputs);//inputsは秒数を表示しているtextview 9 // ここで実際にファイルに書き込む 10 editor.commit(); 11 12 // 保存されている値を呼び出し 13 ((SharedPreferences) tv2).getInt("user_id", -1);//textviewのtv2に表示したい

今記述しているコードは上記ですがエラーが出ます。
デバッグで見てみてもtv2には反映されていません。

上記の正しい記述や解決方法、できれば前回の記録との比較方法も教えて頂けたらありがたいです。

ご教授よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

A,B,C部分て何をさしていますか?
質問とコードを照らし合わせてもその辺があまり読み取れないです。

ですので追記のコードでおかしそうな部分を指摘します。
editor.commit()を2回していますが、その間に値の変更処理はないので最後のeditor.commit()は意味が無いです。

ちなみに以下のメソッドの第2引数はデフォルト値です。
値が存在しなかった場合に取得する値です。

pref1.getString("g2byou", inputs)

的外れでしたらすみません。

追記:
適当なサンプルを実装してみました。
ボタンを押下するとランダム値と最大値がTextViewに表示されます。
最大値はPrefarenceに保存しているのでアプリ再起動後も有効です。
レイアウトはTextView2つ、Button1つなので適当に作成してください。

lang

1 private TextView textViewA; 2 private TextView textViewB; 3 private SharedPreferences pref; 4 private int max; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_main); 10 11 textViewA = (TextView) findViewById(R.id.textView1); 12 textViewB = (TextView) findViewById(R.id.textView2); 13 Button button = (Button) findViewById(R.id.button1); 14 pref = getSharedPreferences("user_data", MODE_PRIVATE); 15 button.setOnClickListener(new OnClickListener() { 16 @Override 17 public void onClick(View v) { 18 int value = (int) (Math.random() * 1000); 19 if (value > max) { 20 max = value; 21 pref.edit().putInt("max", max).commit(); 22 textViewB.setText("" + max); 23 } 24 textViewA.setText("" + value); 25 26 } 27 }); 28 max = pref.getInt("max", 0); 29 textViewA.setText(""); 30 textViewB.setText("" + max); 31 32 }

追記2:
なるべく変更しないで修正しました。
コンパイルも行っていないのでそのまま動くか不明です。

画面遷移で変更した部分があります。
各画面(2,3,4)から遷移する場合に画面IDをIntentに"INPUTid"としてセットしてあげてください。なので画面毎に"INPUT","INPUT3","INPUT4"と分けないで"INPUT","INPUTs","INPUTms"で統一して修正してください。

lang

1 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_result); 6 Intent intent = getIntent(); 7 8 TextView textview1 = (TextView) findViewById(R.id.textView1); 9 TextView textview3 = (TextView) findViewById(R.id.textView3); 10 TextView textview5 = (TextView) findViewById(R.id.textView5); 11 12 TextView tv1 = (TextView) findViewById(R.id.tv1); 13 TextView tv2 = (TextView) findViewById(R.id.tv2); 14 TextView tv3 = (TextView) findViewById(R.id.tv3); 15 16 TextView tv4 = (TextView) findViewById(R.id.tv4); 17 TextView tv5 = (TextView) findViewById(R.id.tv5); 18 TextView tv6 = (TextView) findViewById(R.id.tv6); 19 20 TextView tv7 = (TextView) findViewById(R.id.tv7); 21 TextView tv8 = (TextView) findViewById(R.id.tv8); 22 TextView tv9 = (TextView) findViewById(R.id.tv9); 23 24 int id = intent.getIntExtra("INPUTid", -1); // 画面idを送る 25 String hun = intent.getStringExtra("INPUT"); 26 String byou = intent.getStringExtra("INPUTs"); 27 String mbyou = intent.getStringExtra("INPUTms"); 28 textview1.setText(hun); 29 textview3.setText(byou); 30 textview5.setText(mbyou); 31 32 int ihun = Integer.valueOf(hun); 33 int ibyou = Integer.valueOf(byou); 34 int imbyou = Integer.valueOf(mbyou); 35 36 showScore(tv1, tv2, tv3, 2, id, ihun, ibyou, imbyou); 37 showScore(tv4, tv5, tv6, 3, id, ihun, ibyou, imbyou); 38 showScore(tv7, tv8, tv9, 4, id, ihun, ibyou, imbyou); 39 40 } 41 42 private void showScore(TextView tf, TextView ts, TextView tt, int id, int rcvId, int hun, int byou, int mbyou) { 43 SharedPreferences pref = getSharedPreferences("user_data", MODE_PRIVATE); 44 int minhun = pref.getInt("g" + id + "hun", 60); 45 int minbyou = pref.getInt("g" + id + "byou", 60); 46 int minmbyou = pref.getInt("g" + id + "mbyou", 1000); 47 if (minhun >= 60) { 48 tf.setText(""); 49 ts.setText(""); 50 tt.setText(""); 51 } else { 52 tf.setText(minhun + ""); 53 ts.setText(minbyou + ""); 54 tt.setText(minmbyou + ""); 55 } 56 if (id == rcvId) { 57 long msec = (hun * 60 + byou) * 1000 + mbyou; 58 if ((minhun * 60 + minbyou) * 1000 + minmbyou > msec) {// 更新してたら上書き 59 pref.edit().putInt("g" + id + "hun", hun).putInt("g" + id + "byou", byou) 60 .putInt("g" + id + "mbyou", mbyou).commit(); 61 tf.setText(hun + ""); 62 ts.setText(byou + ""); 63 tt.setText(mbyou + ""); 64 } 65 } 66 }

投稿2014/10/16 02:37

omochi

総合スコア410

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

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

shinshin

2014/10/16 03:02

回答ありがとうございます。 わかりにくい記述で申し訳ございません。 A,B,Cすべてtextviewです。Aのtextviewには今回の記録(秒数) Bのtextviewには過去最高記録を保存(更新したら塗り替え) Cのtextviewは今回の保存がちゃんとなっているかのテスト用です。 editor.commit()を消して第2引数も消してみたのですが相変わらず 表示はされるのですが保存されず前回のデータが消えてしまいます。
omochi

2014/10/16 04:12

他にまだコードがあるということですか? あるなら投稿した方がみなさん解答しやすいですよ。
omochi

2014/10/16 04:42

適当なサンプルを回答に追記しました。 お役にたてなかっらたごめんなさい。
shinshin

2014/10/16 13:10

回答ありがとうございます!! 教えていただいたコードがイメージ通りです! ただ先ほどから試しているのですが、 まだ私の技術不足で自分のコードに当てはめる事ができません。 よろしかったら教えて頂けないでしょうか。 わかりやすいようにと思って省略して載せていたのですが逆にわかりにくくしてたんですね。申し訳ないです。 画面2、3、4からの結果を、 下の画面5のコードのtextview1(分),textview3(秒),textview5(ミリ秒)に表示させ、 過去最高を上回っていたらそれぞれ 画面2の分は tv1(分),tv2(秒),tv3(ミリ秒)に表示と保存 画面3の分は tv4(分),tv5(秒),tv6(ミリ秒)に表示と保存 画面4の分は tv7(分),tv8(秒),tv9(ミリ秒)に表示と保存 としたいのです。 今はそれぞれからの画面からの結果をtextview1,3,5からの結果を表示としかできていません。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gamen5); Intent intent=getIntent(); TextView textview1=(TextView) findViewById(R.id.textView1); TextView textview3=(TextView) findViewById(R.id.textView3); TextView textview5=(TextView) findViewById(R.id.textView5); TextView tv1=(TextView) findViewById(R.id.tv1); TextView tv2=(TextView) findViewById(R.id.tv2); TextView tv3=(TextView) findViewById(R.id.tv3); String hun = null; String byou = null; String mbyou = null; TextView tv4=(TextView) findViewById(R.id.tv4); TextView tv5=(TextView) findViewById(R.id.tv5); TextView tv6=(TextView) findViewById(R.id.tv6); String hun3 = null; String byou3 = null; String mbyou3 = null; TextView tv7=(TextView) findViewById(R.id.tv7); TextView tv8=(TextView) findViewById(R.id.tv8); TextView tv9=(TextView) findViewById(R.id.tv9); String hun4 = null; String byou4 = null; String mbyou4 = null; hun = intent.getStringExtra("INPUT"); byou = intent.getStringExtra("INPUTs"); mbyou = intent.getStringExtra("INPUTms"); hun3 = intent.getStringExtra("INPUT3"); byou3 = intent.getStringExtra("INPUT3s"); mbyou3 = intent.getStringExtra("INPUT3ms"); hun4 = intent.getStringExtra("INPUT4"); byou4 = intent.getStringExtra("INPUT4s"); mbyou4 = intent.getStringExtra("INPUT4ms"); if(hun != null && byou != null){ //画面2からのデータ String input=intent.getStringExtra("INPUT"); textview1.setText(input); String inputs=intent.getStringExtra("INPUTs"); textview3.setText(inputs); String inputms=intent.getStringExtra("INPUTms"); textview5.setText(inputms); // MODE_PRIVATEでこのアプリだけが使用できるように設定 SharedPreferences pref1 = getSharedPreferences("user_data",MODE_PRIVATE); SharedPreferences.Editor editor = pref1.edit(); // プリファレンスに書き込むためのEditorオブジェクト取得 // g2hun というキーで値を保存 editor.putString("g2hun", input); editor.putString("g2byou", inputs); editor.putString("g2mbyou", inputms); // ここで実際にファイルに書き込む editor.commit(); tv1.setText(pref1.getString("g2hun", inputs),BufferType.NORMAL);//textviewのpreference保存の記述 tv2.setText(pref1.getString("g2byou", inputs),BufferType.NORMAL); tv3.setText(pref1.getString("g2mbyou", inputms),BufferType.NORMAL); }else if(hun3 != null && byou3 != null){ //画面3からのデータ 上記とほぼ一緒なので省略 }else { //画面4からのデータ      上記とほぼ一緒なので省略 } }
omochi

2014/10/17 04:32

更に回答に追記しました。
shinshin

2014/10/17 14:28

すみません返事遅くなりました。 長いコード書いて頂いて本当にありがたいです。 お手数おかけして申し訳ないです。 今教えて頂いた通りに、上記コードにし、画面の2、3、4、も変更したのですが上記の結果表示画面に切り替わるタイミングでエラーになり強制終了します。 //各画面(2,3,4)から遷移する場合に画面IDをIntentに"INPUTid"としてセットしてあげてください。 これは画面2であれば、         intent.putExtra("INPUTid",2); intent.putExtra("INPUT", input); intent.putExtra("INPUTs", inputs); intent.putExtra("INPUTms", inputms); としているのですが間違っているのでしょうか。 intent.putExtra("INPUTid",2); 長々と質問ばかりしてすみません。
shinshin

2014/10/18 18:43

すみません上記のINPUTidの件は解決しました。 エミュレータが強制終了になるのを解決できません。 1つずつ調べているのですが おそらく、 int minhun = pref.getInt("g2hun", Integer.MAX_VALUE); int minbyou = pref.getInt("g2byou", Integer.MAX_VALUE); int minmbyou = pref.getInt("g2mbyou", Integer.MAX_VALUE); long minmsec = (minhun * 60 + minbyou) * 1000 + minmbyou; の部分がエラーの原因かと思うのですが、解決方法がわかりません。
omochi

2014/10/20 11:05

以下に修正してみてください。 int minhun = pref.getInt("g2hun", 59); int minbyou = pref.getInt("g2byou", 59); int minmbyou = pref.getInt("g2mbyou", 999); long minmsec = (minhun * 60 + minbyou) * 1000 + minmbyou;
shinshin

2014/10/20 17:01

何度もありがとうございました! 上記に変えてみたのですがやはり強制終了になります。 何度も質問ばかりで申し訳無かったです、丁寧に教えて頂いてすごく嬉しいです! ベストアンサー付けさせて頂きました! 自分でももっと悩んで試行錯誤してみます。 もしomochiさんが何か原因が判明して、お手すきでしたらアドバイス頂けたら嬉しいです。 ありがとうございました。
shinshin

2014/10/20 17:53

すみません今デバッグのやり方が少し分かってきたので見てたのですが、 user_dataが<評価中のエラー> g2hun g2byou g2mbyouも<評価中のエラー>でした。なので minhun minbyou minmbyou minmsecも<評価中のエラー>となっていました。 ここに原因があると思うのですが、難しいです。。 お手すきな時間ありましたらご教授頂けたらありがたいです。
omochi

2014/10/21 03:44

当該エラーのLogCatログを投稿可能であればそのまま貼り付けて投稿してください。
shinshin

2014/10/21 06:13

名前    値 inputms   7 inputs   13 input   00 id    2 minhun   <評価中のエラー> minbyou  <評価中のエラー> minmbyou <評価中のエラー> minmsec  <評価中のエラー> editor    (id=830034201720) と出ています。 教えて頂いたコードをそのまま使用するとその画面に切り替わるタイミングで強制終了します。 (eclipseのデバッグの方はActivityThreadというページが出てきます。画面上には赤字でソースが見つかりませんでした。と出ています。) なので自分で少しづつ入力していき、エミュレータで起動確認しながら入力しているのですが、やはり int minhun = pref.getInt("g2hun", 59); int minbyou = pref.getInt("g2byou", 59); int minmbyou = pref.getInt("g2mbyou", 999); long minmsec = (minhun * 60 + minbyou) * 1000 + minmbyou; を記入してエミュで確認したらページが切り替わるタイミングで終了します。 この時も、eclipseにはActivityThreadが出てきて、ソースが~と表示されています。 どうしたら良いでしょうか。 ご教授よろしくお願いします。
shinshin

2014/10/21 06:15

画面に切り替わるタイミングていうのは その前の画面2,3,4いずれかが終了して、その上記の結果の画面に切り替わるタイミングです。
omochi

2014/10/21 07:59

一度アプリケーションをアンインストールしてください。 その後に再度インストールしてください。 以前のプリファレンスが型違いで残っていてキャストに失敗している可能性があります。 *Logcatで例外ログが出力されているはずです。LogCatはデバッグする上でとても重要なので確認方法を覚えましょう。
omochi

2014/10/21 08:48

コードを修正しました。
shinshin

2014/10/21 16:33

毎度ありがとうございます。 エミュレータ上のアプリをアンインストールして、再度教えて頂いたコードを当てはめたのですが、同じタイミングでエラーとなり強制終了してしまいます。 エラーの時に出てきたLogcatをerrorで絞り込んで全て下記に載せました。これの事でしょうか? Logcatも勉強します。 10-21 16:26:36.728: E/AndroidRuntime(1869): FATAL EXCEPTION: main 10-21 16:26:36.728: E/AndroidRuntime(1869): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nekotest/com.example.nekotest.SaigoActivity}: java.lang.NullPointerException 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.ActivityThread.access$600(ActivityThread.java:141) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.os.Handler.dispatchMessage(Handler.java:99) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.os.Looper.loop(Looper.java:137) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.ActivityThread.main(ActivityThread.java:5039) 10-21 16:26:36.728: E/AndroidRuntime(1869): at java.lang.reflect.Method.invokeNative(Native Method) 10-21 16:26:36.728: E/AndroidRuntime(1869): at java.lang.reflect.Method.invoke(Method.java:511) 10-21 16:26:36.728: E/AndroidRuntime(1869): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 10-21 16:26:36.728: E/AndroidRuntime(1869): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 10-21 16:26:36.728: E/AndroidRuntime(1869): at dalvik.system.NativeStart.main(Native Method) 10-21 16:26:36.728: E/AndroidRuntime(1869): Caused by: java.lang.NullPointerException 10-21 16:26:36.728: E/AndroidRuntime(1869): at com.example.nekotest.SaigoActivity.onCreate(SaigoActivity.java:49) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.Activity.performCreate(Activity.java:5104) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-21 16:26:36.728: E/AndroidRuntime(1869): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-21 16:26:36.728: E/AndroidRuntime(1869): ... 11 more
omochi

2014/10/22 08:05

それがLogCatのログになります。スタックトーレスが表示されています。 SaigoActivity.java:49行目でNullPointerExceptionが発生しています。 49行目で何か値が取得できていなかったり初期化されていない変数があると思います。
shinshin

2014/10/22 15:41

お世話になっています。 49行目はこの部分です。デバッグで値を見ようとしてもZygoteInit.javaと言うところにいきみれません。 45   int id = intent.getIntExtra("INPUTid", -1); // 画面idを送る 46 String hun = intent.getStringExtra("INPUT"); 47 String byou = intent.getStringExtra("INPUTs"); 48 String mbyou = intent.getStringExtra("INPUTms"); 49 textview1.setText(hun); 50 textview3.setText(byou); 51 textview5.setText(mbyou); アプリ作成の最後の最後で考えても進まず足踏み状態でくじけそうですが、ここまできたら完成させたいです。 長々とお付き合いして頂き申し訳ないですが、ご教授頂きたいです。 よろしくお願いします。
shinshin

2014/10/23 02:37

今スクールに来ていて別のパソコンで試してみたのですが、下記のようになっているのですがエラーの内容変わっているのでしょうか? E/AndroidRuntime(2563): FATAL EXCEPTION: main E/AndroidRuntime(2563): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nekotest/com.example.nekotest.SaigoActivity}: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer E/AndroidRuntime(2563): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) E/AndroidRuntime(2563): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) E/AndroidRuntime(2563): at android.app.ActivityThread.access$600(ActivityThread.java:141) E/AndroidRuntime(2563): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) E/AndroidRuntime(2563): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(2563): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(2563): at android.app.ActivityThread.main(ActivityThread.java:5103) E/AndroidRuntime(2563): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(2563): at java.lang.reflect.Method.invoke(Method.java:525) E/AndroidRuntime(2563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) E/AndroidRuntime(2563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) E/AndroidRuntime(2563): at dalvik.system.NativeStart.main(Native Method) E/AndroidRuntime(2563): Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer E/AndroidRuntime(2563): at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:240) E/AndroidRuntime(2563): at com.example.nekotest.SaigoActivity.showScore(SaigoActivity.java:63) E/AndroidRuntime(2563): at com.example.nekotest.SaigoActivity.onCreate(SaigoActivity.java:56) E/AndroidRuntime(2563): at android.app.Activity.performCreate(Activity.java:5133) E/AndroidRuntime(2563): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) E/AndroidRuntime(2563): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) E/AndroidRuntime(2563): ... 11 more 56行目と63行目でキャストできていないと言ってるのでしょうか。 56 showScore(tv1, tv2, tv3, 2 , id, ihun, ibyou, imbyou); 57 showScore(tv4, tv5, tv6, 3 , id, ihun, ibyou, imbyou); 58 showScore(tv7, tv8, tv9, 4 , id, ihun, ibyou, imbyou); } 62 private void showScore(TextView tf, TextView ts, TextView tt, int id, int r cvId, int hun, int byou, int mbyou) { 63 int minhun = pref.getInt("g" + id + "hun", 60); 64 int minbyou = pref.getInt("g" + id + "byou", 60); 65 int minmbyou = pref.getInt("g" + id + "mbyou", 1000);
omochi

2014/10/23 06:08

63行目でStringからIntegerにキャストはできないといわれています。 おそらく以前に指摘した古いプリファレンスがStringで残っているためだと思います。アンインストールをしてから再度インストールしてみてください。
omochi

2014/10/23 06:16

> 49 textview1.setText(hun); 上記でNullPointerExceptionが発生しているのはtextview1に値をいれていないからです。 メンバ変数のtextview1にfindViewByIdで値を入れる必要があります。ローカル変数でスコープを上書きしているとメンバ変数はnullのままです。 私のコードそのままだとNullPointerExceptionは発生しないはずです。
omochi

2014/10/23 06:29

メンバ変数を利用しないでメソッド内で完結するようにコードを修正したので試してみてください。
shinshin

2014/10/23 13:47

omochiさん お世話になっております。 ありがとうございます。 アンインストールの心配もあったので新しいプロジェクトを作成し実行したら教えて頂いたコードのままでできました!! もう自分の実力ではまだまだかかるであろう問題に長々とお付き合い頂いて本当に助かりました! デバッグやLogCatの事など自分の先にするべき事もわかりました! 本当にありがとうございました。
guest

0

斜め読みですみませんが、
putString しているのに getInt なんですか?

投稿2014/10/16 00:15

Akku

総合スコア21

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

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

shinshin

2014/10/16 01:04

ご意見ありがとうございます。 そうですよねそこもおかしいですね。 質問のあとに自分でまだ調べていたら下に反映するとこまではいけたのですが保存されません。 質問を編集追記します。 よろしかったらまたご意見ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問