前提・実現したいこと
男女別に必要な栄養を計算しようとしています。
AndroidStudio内で作成したspinnerの項目のデータを元にボタンクリック後にtextviewに反映させたい。
項目は男性、女性の2つです。
発生している問題・エラーメッセージ
app has stopped open app again
該当のソースコード
activitymain
1//この項目のデータを参照したい 2<Spinner 3 android:id="@+id/spinnerSex" 4 android:layout_width="98dp" 5 android:layout_height="32dp" 6 android:layout_marginTop="150dp" 7 android:layout_marginEnd="62dp" 8 android:layout_marginRight="62dp" 9 android:background="@drawable/grid_border" 10 android:entries="@array/list1" 11 /> 12 13//ここに参照させたい 14<TextView 15 android:id="@+id/calorieForm" 16 android:layout_width="294dp" 17 android:layout_height="wrap_content" 18 android:layout_row="1" 19 android:layout_column="1" 20 android:background="@drawable/grid_border" 21 android:gravity="center" />
strings
1<resources> 2string name="app_name">Eiyoukun</string> 3 <string-array name="list1"> 4 <item>男性</item>> 5 <item>女性</item>> 6 </string-array> 7 > 8strings.xml 9</resources>
mainactivity
1import android.annotation.SuppressLint; 2import android.os.Bundle; 3import android.widget.ArrayAdapter; 4import android.widget.EditText; 5import android.widget.Spinner; 6import android.widget.TextView; 7import androidx.appcompat.app.AppCompatActivity; 8 9public class MainActivity extends AppCompatActivity { 10 11 Spinner spinner2; 12 private String spinnerSex[] = {"男性", "女性"}; 13 14@Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main); 18 19 spinner2 = (Spinner)findViewById(R.id.spinnerSex); 20 21public void onClickButton(android.view.View view) { 22 TextView calorieForm = (TextView)this.findViewById(R.id.calorieForm); 23 @SuppressLint("WrongViewCast") EditText spinner2 = this.findViewById(R.id.spinnerSex); 24 EditText ageForm = (EditText)this.findViewById(R.id.ageForm); 25 EditText weightForm = (EditText)this.findViewById(R.id.weightForm); 26 EditText heightForm = (EditText)this.findViewById(R.id.heightForm); 27 28 29 String strAge; 30 strAge = weightForm.getText().toString(); 31 String strWeight; 32 strWeight = weightForm.getText().toString(); 33 String strHeight; 34 strHeight = weightForm.getText().toString(); 35 36 double calorie, protein, carbon, fat, age, weight, height; 37 age = Double.parseDouble(strAge); 38 weight = Double.parseDouble(strWeight); 39 height = Double.parseDouble(strHeight); 40 41if (spinnerSex.equals("男性") ){ 42 calorie = 13.397 * weight + 4.799 * height - 5.677 * age + 88.362; 43 } else { 44 calorie = 9.247 * weight + 3.098 * height - 4.33 * age + 447.593; 45 } 46 47 String msg0 = calorie + "cal"; 48 calorieForm.setText(msg0); 49 } 50 51 52}
試したこと
terarailで似た内容の質問"android 複数項目のspinnerからのデータ取得方法についての質問"を参考にしましたが、
//spinner
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerPrice);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
のadapterでエラーが起きてしまいました。
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
のinportが出来ないのが原因だと思いました。
補足情報(FW/ツールのバージョンなど)
java8, AndroidStudio4.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/19 12:57
2020/07/19 14:20