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

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

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

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

Q&A

1回答

966閲覧

入力した情報を再起動時に呼び出すには?

dai0926

総合スコア10

Java

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

0グッド

0クリップ

投稿2019/01/28 08:15

編集2019/01/28 08:31

前提・実現したいこと

 はじめまして。初めて質問をさせて頂きます。現在Javaを用いてAndroidStudioで栄養管理のアプリを作成しています。
画面内にEditText,RadioGroup,RadioButtonを配置し,EditTextには年齢を入力,RadioButtonでは男女の性別の選択をしてもらうようにして食べたメニューを登録してもらいます。食べたメニューの合計カロリーや合計栄養素量と,その各合計値と入力した年齢の年代(65歳と入力したら60代)の基準量を比較した時の過不足分を表示させることはできたのですが,一度アプリを閉じ,再起動するとEditTextに入力された年齢,RadioButtonで選択してもらった性別が取得できておらず,合計値しか表示されません。
初めに入力・選択してもらった年齢・性別はどうすれば再起動時にも保持され,そこから過不足分も表示できるのでしょうか?お分かりいただける方がいらっしゃれば教えて頂きたいです。

発生している問題・エラーメッセージ

アプリ起動時,入力・選択してもらった年齢・性別が,アプリを閉じて再起動すると保持されていない。

該当のソースコード

EditText=etAge,RadioGroup=rg,RadioButton=rbmale(男),rbfemale(女),
kekka=結果表示用のデータベーステーブル,kijunn=各年代の基準量が内蔵されているデータベーステーブル,age,sexualなどは変数です。
脂質から塩分までの値はTEXT型で保存しているため,文字列型で取得しBigDecimalクラスへ型変換しています。

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button_asa = findViewById(R.id.button_asa); button_hiru = findViewById(R.id.button_hiru); button_yoru = findViewById(R.id.button_yoru); etAge = findViewById(R.id.etAge); agetext = etAge.getText().toString(); age = agetext; rg = findViewById(R.id.rg); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkId) { checkId = rg.getCheckedRadioButtonId();          rbmale = findViewById(checkId); rbfemale = findViewById(checkId); if (rbmale.isChecked()) { sexualtext = rbmale.getText().toString(); } else if (rbfemale.isChecked()) { sexualtext = rbfemale.getText().toString(); } sexual = sexualtext; } }); String select = "SELECT * FROM kekka WHERE date = '" + date + "'"; final Cursor cursor_kekka = db.rawQuery(select, null); cursor_kekka.moveToFirst(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < cursor_kekka.getCount(); i++) { sb.append("カロリー:"); a1 = cursor_kekka.getInt(cursor_kekka.getColumnIndex("カロリー")); sb.append(cursor_kekka.getInt(2)); sb.append("kcal\n"); sb.append("脂質:"); a2 = cursor_kekka.getString(cursor_kekka.getColumnIndex("脂質")); sb.append(cursor_kekka.getString(3)); BD2 = new BigDecimal(a2); sb.append("g\n"); sb.append("食物繊維:"); a3 = cursor_kekka.getString(cursor_kekka.getColumnIndex("食物繊維")); sb.append(cursor_kekka.getString(4)); BD3 = new BigDecimal(a3); sb.append("g\n"); sb.append("糖質:"); a4 = cursor_kekka.getString(cursor_kekka.getColumnIndex("糖質")); sb.append(cursor_kekka.getString(5)); BD4 = new BigDecimal(a4); sb.append("g\n"); sb.append("塩分:"); a5 = cursor_kekka.getString(cursor_kekka.getColumnIndex("塩分")); sb.append(cursor_kekka.getString(6)); BD5 = new BigDecimal(a5); sb.append("g\n"); cursor_kekka.moveToNext(); } totaltext = findViewById(R.id.totaltext); totaltext.setText(sb.toString()); Age = Integer.parseInt(age); if (Age >= 60 && Age <= 69 && sexual.equals("男")) { ages="60代"; sexuals= "男"; }else if(Age >= 60 && Age <= 69 && sexual.equals("女")) { ages="60代"; sexuals= "女"; }else if(Age >= 70 && Age <= 79 && sexual.equals("男")) { ages="70代"; sexuals= "男"; }else if(Age >= 70 && Age <= 79 && sexual.equals("女")) { ages="70代"; sexuals= "女"; }else if(Age >= 80 && Age <= 89 && sexual.equals("男")) { ages="80代"; sexuals= "男"; }else if(Age >= 80 && Age <= 89 && sexual.equals("女")) { ages="80代"; sexuals= "女"; }else if(Age >= 90 && Age <= 99 && sexual.equals("男")) { ages="90代"; sexuals= "男"; }else if(Age >= 90 && Age <= 99 && sexual.equals("女")) { ages="90代"; sexuals= "女"; } String select_kijunn = "SELECT * FROM kijunn WHERE age = '" + ages + "' AND sexual = '" + sexuals + "'"; Cursor cursor_kijunn = db.rawQuery(select_kijunn, null); while (cursor_kijunn.moveToNext()) { b1 = cursor_kijunn.getInt(cursor_kijunn.getColumnIndex("カロリー")); b2 = cursor_kijunn.getString(cursor_kijunn.getColumnIndex("脂質")); bd2 = new BigDecimal(b2); b3 = cursor_kijunn.getString(cursor_kijunn.getColumnIndex("食物繊維")); bd3 = new BigDecimal(b3); b4 = cursor_kijunn.getString(cursor_kijunn.getColumnIndex("糖質")); bd4 = new BigDecimal(b4); b5 = cursor_kijunn.getString(cursor_kijunn.getColumnIndex("塩分")); bd5 = new BigDecimal(b5); } cursor_kijunn.close(); StringBuilder sb2 = new StringBuilder(); if (cursor_kekka.getCount() != 0) { k = a1 - b1; l = BD2.subtract(bd2); L = l.toString(); d = BD3.subtract(bd3); D = d.toString(); c = BD4.subtract(bd4); C = c.toString(); s = BD5.subtract(bd5); S = s.toString(); sb2.append(k); sb2.append("kcal\n"); sb2.append(L); sb2.append("g\n"); sb2.append(D); sb2.append("g\n"); sb2.append(C); sb2.append("g\n"); sb2.append(S); sb2.append("g\n"); kijunn = findViewById(R.id.kijunn); kijunn.setText(sb2.toString()); }

試したこと

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

azuapricot

2019/01/28 08:17

コードはマークダウン<code>を使用して記述してくださ~~~~~~い
guest

回答1

0

SharedPreferences というキーワードでしらべてみるといいかもしれませんよ。

投稿2019/01/28 08:33

Kota_Kappa

総合スコア116

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

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

dai0926

2019/01/28 08:47

回答ありがとうございます。 調べてみて試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問