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

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

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

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

Android

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

Android Studio

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

Q&A

解決済

1回答

963閲覧

SharedPreferenceで文字列を保存して別のActivityで表示をしたい

souja

総合スコア13

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2019/12/05 06:50

編集2019/12/07 08:06

android studioでSharedPreferenceでTextViewに表示した文字を保存してべつのActivityのTextViewに表示したいと考えています。ビルドしてエミュレーターで動かすことはできます。そして保存して別のActivityで表示させることはできるのですが、「androidx.appcompat.widget.AppCompat.TextView{fdef34a V.E.D........」という文字列がTextViewに表示されてしまいます。これは何が起こっているのでしょうか?

java

1 2package com.example.soja.page1; 3 4import androidx.appcompat.app.AppCompatActivity; 5import androidx.core.app.ActivityCompat; 6 7import android.app.Activity; 8import android.content.Intent; 9import android.content.SharedPreferences; 10import android.os.Bundle; 11import android.preference.PreferenceManager; 12import android.view.View; 13import android.widget.Button; 14import android.widget.SimpleAdapter; 15import android.widget.TextView; 16 17import java.math.BigDecimal; 18import java.math.RoundingMode; 19 20public class nextpage9 extends AppCompatActivity { 21 private TextView bmiresult, fatresult, boneresult, muscleresult, vascularageresult; 22 private TextView ansview, undouview; 23 int tall, weight, fat, bone, muscle, vascularage; 24 double bmi; 25 String undou; 26 double sta; 27 private Button finishbutton; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_nextpage9); 33 34 //プリファレンスの取得// 35 final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); 36 final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 37 final SharedPreferences pref5 = PreferenceManager.getDefaultSharedPreferences(this); 38 final SharedPreferences pref2 = PreferenceManager.getDefaultSharedPreferences(this); 39 final SharedPreferences pref3 = PreferenceManager.getDefaultSharedPreferences(this); 40 final SharedPreferences pref4 = PreferenceManager.getDefaultSharedPreferences(this); 41 final SharedPreferences answers = PreferenceManager.getDefaultSharedPreferences(this); 42 final SharedPreferences undourei = PreferenceManager.getDefaultSharedPreferences(this); 43 44 undou = undourei.getString("undou", null); 45 sta = answers.getInt("rei", 0); 46 tall = pref.getInt("tall", 0); 47 weight = preferences.getInt("weight", 0); 48 fat = pref5.getInt("fat", 0); 49 bone = pref2.getInt("bone", 0); 50 muscle = pref3.getInt("muscle", 0); 51 vascularage = pref4.getInt("vascularage", 0); 52 53 bmi = weight / ((tall * 0.01) * (tall * 0.01)); 54 55 BigDecimal bigDecimal = new BigDecimal(String.valueOf(bmi)); 56 bmi = bigDecimal.setScale(1, RoundingMode.FLOOR).doubleValue(); 57 58 //結果の表示// 59 bmiresult = findViewById(R.id.editText8); 60 fatresult = findViewById(R.id.editText9); 61 boneresult = findViewById(R.id.editText10); 62 muscleresult = findViewById(R.id.editText11); 63 vascularageresult = findViewById(R.id.editText16); 64 65 bmiresult.setText(String.valueOf(bmi)); 66 fatresult.setText(String.valueOf(fat)); 67 boneresult.setText(String.valueOf(bone)); 68 muscleresult.setText(String.valueOf(muscle)); 69 vascularageresult.setText(String.valueOf(vascularage)); 70 71 ansview = findViewById(R.id.editText17); 72 ansview.setText(String.valueOf(sta)); 73 74 //例の表示// 75 undouview = findViewById(R.id.textView86); 76 undouview.setText(String.valueOf(undou)); 77 78 //終了ボタンのセット// 79 finishbutton = findViewById(R.id.button5); 80 81 //終了ボタンを押したときの処理// 82 finishbutton.setOnClickListener(new View.OnClickListener() { 83 @Override 84 public void onClick(View view) { 85 ActivityCompat.finishAffinity(nextpage9.this); 86 } 87 }); 88 } 89} 90

具体的には運動の例を表示したいと考えています。SharedPreferenceでundoureiを読み込んでそれをテキストとして表示したいです。(undou)

ソースです。上のコードの一つ前のActivityで以下の例を保存しています。putExtraのほうが確実なのでしょうか?

java

1 2 //例をプリファレンスで保存// 3 undourei = PreferenceManager.getDefaultSharedPreferences(this); 4 5 //例の保存// 6 hozonbutton.setOnClickListener(new View.OnClickListener(){ 7 public void onClick(View view){ 8 editor = undourei.edit(); 9 editor.putString("undou", String.valueOf(textView2)); 10 editor.apply(); 11 } 12 });

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/12/05 10:03

ソースを貼ってください。
souja

2019/12/06 04:32

すいませんでした。ソースを記述しました。よろしくお願いします。
HRSKT

2019/12/06 05:33

どのTextViewに表示されるのでしょうか? undourei が null のタイミングで「androidx.....」を出している? null でだめなら undou = undourei.getString("undou", ""; PreferenceManagerはAPI29?以降は使えなかったような? androidx....だからそれかな?
souja

2019/12/06 06:36

説明不足ですいません。undouviewでundou内の文字列を表示をしようとしています。
souja

2019/12/06 06:38

PreferenceManagerを使用した他の値は表示されるのですが、それらは数値です。文字列と数値でまた違いがあるのでしょうか、、、
souja

2019/12/06 06:42

nullを""に変えてためしてみたのですが結果は同じになりました。
退会済みユーザー

退会済みユーザー

2019/12/06 13:26

何で同じプリファレンスを8つも定義しているのかわかりませんが… > SharedPreferenceでTextViewに表示した文字を保存して 大体予想はつくんですが、この部分のソース頂けますか?
souja

2019/12/07 08:07

質問を修正しました。よろしくお願いします。
guest

回答1

0

ベストアンサー

Java

1editor.putString("undou", String.valueOf(textView2));

TextView#toString() は、インスタンスの内容を文字列にしたものであって、TextViewの文字列は返しません。
TextView#getText() を使ってください。

そもそも、TextViewの内容を取り出すのにそんな書き方しろなんてどこかに書いてあったのでしょうか?

投稿2019/12/07 08:29

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

souja

2019/12/08 09:31

ご回答ありがとうございました。よくわからずにこれかな?って思って入力したコードがエラーがなくビルドもできたので勝手に正解だと思いこんでいました。勉強不足でした。何度もご回答いただきありがとうございました。無事表示ができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問