●解決したい事
EditTextにその日に食べたカロリーを入力し、基礎代謝+活動代謝(前の画面からputExtraで受け取っている変数result)と計算しようと思っております。
エラーは出ていなく、@+id/comBtnを押して上記の計算をしたいのですが、入力をして(2000カロリーなど)comBtnを押すとエミュレーターが強制ストップしてしまい原因がわかりません。。
何度も書き換えましたがわかりません。
下記にコードを添付いたしますので、違和感のある箇所をご指摘頂けると幸いです汗
よろしくお願い致します。
kotlin
1class ResultActivity2 : AppCompatActivity() { 2 3 private lateinit var binding: ActivityResult2Binding 4 5 override fun onCreate(savedInstanceState: Bundle?) { 6 super.onCreate(savedInstanceState) 7 8 binding = ActivityResult2Binding.inflate(layoutInflater) 9 setContentView(binding.root) 10 11 binding.EV1.setText("評価") 12 binding.EV2.setText("あなたの本日カロリーは...") 13 14 //今日食べたカロリーをedit型からFloat型へ変換処理。nullならダイアログを表示。 15 var todayEat = binding.todayEat.text.toString().toFloatOrNull() 16 var result = intent.getFloatExtra("RESULT", 0f) 17 var resultKcal: Float 18 19 binding.comBtn.setOnClickListener { 20 21 if (todayEat == null) { 22 AlertDialog.Builder(this) 23 .setTitle("入力に誤りがあります。") 24 .setPositiveButton(android.R.string.ok, null).show() 25 } 26 27 //result=その日の総合消費カロリー todayEat=本日の摂取カロリー(食べたカロリー) 28 29 if (result > todayEat!!) { 30 resultKcal = result - todayEat //消費カロリーの方が多い場合 31 } else { 32 resultKcal = todayEat - result //摂取カロリーの方が多い場合 33 } 34 35 36 binding.EVtext1.setText(resultKcal.toString()) 37 38 if (resultKcal > 500) { 39 binding.comment.setText( 40 "+500Kcal以上は取りすぎです。ダイエット時の適切なカロリーは" + result.toString() + "よりも低くなければいけません。" + 41 "あなたが本日の摂取カロリーからマイナスするのは" + resultKcal.toString() + "が望ましいでしょう。" 42 ) 43 } else if (resultKcal < 0 && -300 > resultKcal) { //0~-300の間 44 binding.comment.setText( 45 "本日の-" + resultKcal.toString() + "は適性なダイエットカロリーです。" + "ダイエット時の適切なカロリーは" + result.toString() + "よりも低くなければいけません。" + 46 "今後も0 ~ -300Kcalの間を目安に継続しましょう。理想は0よりも-300に近い方がいいです" 47 ) 48 } else if (resultKcal < -300 && resultKcal > -500) { 49 binding.comment.setText( 50 "本日の-" + resultKcal.toString() + "は適性なダイエットカロリーです。" + "ダイエット時の適切なカロリーは" + result.toString() + "よりも低くなければいけません。" + 51 "ただし低くし過ぎてもいけません。理想は0 ~ -500であり、-500Kcalを下回らないように努力しましょう。" 52 ) 53 } else if (resultKcal < 500 && resultKcal > 0) { 54 binding.comment.setText( 55 "本日の+" + resultKcal.toString() + "は筋肉を発達させる上では適性なカロリーです。" + "逆に減量のダイエット時の適切なカロリーは" + result.toString() + "よりも低くなければいけません。" + 56 "体脂肪を増やさず筋肉のみを増やすならば、今後も0 ~ +500Kcalの間を目安に継続しましょう。ただ、運動をしていない方であれば、" + result.toString() + "よりも+300 ~ +500Kcalをすると体脂肪が増える可能性があります" + 57 "あくまでもダイエットは(筋トレ)が前提となります。" 58 ) 59 } else { 60 binding.comment.setText( 61 "本日の+" + resultKcal.toString() + "は体脂肪を増やす可能性が高い摂取カロリーです。" + "ダイエット時の適切なカロリーは" + result.toString() + "よりも低くなければいけません。" + 62 "今後は体重を健康的に減らしたいのであれば" + result.toString() + "から0 ~ -300Kcalの間を目安に継続しましょう。理想は0よりも300に近い方がいいです" + "逆に筋肉を増やしつつ、体脂肪を付けたくないのであれば" + result.toString() + "から+100 ~ 300Kcalを目安に摂取カロリーを" + 63 "増やしましょう" 64 ) 65 } 66 67 } 68 } 69} 70 71``` Xml 72 73 <TextView 74 android:id="@+id/EV1" 75 android:layout_width="wrap_content" 76 android:layout_height="wrap_content" 77 android:text="評価" 78 android:textSize="36sp" 79 app:layout_constraintBottom_toTopOf="@+id/todayEat" 80 app:layout_constraintEnd_toEndOf="parent" 81 app:layout_constraintStart_toStartOf="parent" 82 app:layout_constraintTop_toTopOf="parent" 83 app:layout_constraintVertical_bias="0.51" /> 84 85 <TextView 86 android:id="@+id/EV2" 87 android:layout_width="wrap_content" 88 android:layout_height="wrap_content" 89 android:layout_marginTop="23dp" 90 android:layout_marginBottom="32dp" 91 android:text="あなたの本日消費したカロリーは..." 92 android:textSize="18sp" 93 app:layout_constraintBottom_toTopOf="@+id/EVtext1" 94 app:layout_constraintEnd_toEndOf="parent" 95 app:layout_constraintStart_toStartOf="parent" 96 app:layout_constraintTop_toBottomOf="@+id/eatKcal" /> 97 98 <TextView 99 android:id="@+id/EVtext1" 100 android:layout_width="wrap_content" 101 android:layout_height="wrap_content" 102 android:text="Kcal" 103 android:textSize="24sp" 104 app:layout_constraintBottom_toTopOf="@+id/comment" 105 app:layout_constraintEnd_toEndOf="parent" 106 app:layout_constraintStart_toStartOf="parent" 107 app:layout_constraintTop_toBottomOf="@+id/EV2" /> 108 109 <EditText 110 android:id="@+id/eatKcal" 111 android:layout_width="wrap_content" 112 android:layout_height="wrap_content" 113 android:layout_marginBottom="22dp" 114 android:ems="10" 115 android:inputType="numberDecimal" 116 app:layout_constraintBottom_toTopOf="@+id/EV2" 117 app:layout_constraintEnd_toEndOf="parent" 118 app:layout_constraintStart_toStartOf="parent" 119 app:layout_constraintTop_toBottomOf="@+id/todayEat" /> 120 121 <TextView 122 android:id="@+id/todayEat" 123 android:layout_width="wrap_content" 124 android:layout_height="wrap_content" 125 android:layout_marginTop="17dp" 126 android:text="本日の摂取カロリーを入力" 127 android:textSize="18sp" 128 app:layout_constraintBottom_toTopOf="@+id/eatKcal" 129 app:layout_constraintEnd_toEndOf="parent" 130 app:layout_constraintStart_toStartOf="parent" 131 app:layout_constraintTop_toBottomOf="@+id/EV1" /> 132 133 <TextView 134 android:id="@+id/comment" 135 android:layout_width="wrap_content" 136 android:layout_height="wrap_content" 137 android:layout_marginBottom="436dp" 138 android:text="ここに評価のコメントが入ります。" 139 android:textSize="18sp" 140 app:layout_constraintBottom_toBottomOf="parent" 141 app:layout_constraintEnd_toEndOf="parent" 142 app:layout_constraintStart_toStartOf="parent" 143 app:layout_constraintTop_toBottomOf="@+id/EVtext1" /> 144 145 <Button 146 android:id="@+id/comBtn" 147 android:layout_width="wrap_content" 148 android:layout_height="wrap_content" 149 android:layout_marginTop="318dp" 150 android:layout_marginBottom="70dp" 151 android:text="結果を見る" 152 app:layout_constraintBottom_toBottomOf="parent" 153 app:layout_constraintEnd_toEndOf="parent" 154 app:layout_constraintStart_toStartOf="parent" 155 app:layout_constraintTop_toBottomOf="@+id/comment" /> 156
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。