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 });
回答1件
あなたの回答
tips
プレビュー