Android(Kotlin)でintentを使って複数の値を別のアクティビティに送りたい
ここに質問の内容を詳しく書いてください。
AndroidStudio(Kotolin)でアプリを簡単なゲームアプリ作っています。
その中でintent,putExtra,getExtraを用いメニュー画面からメインのアクティビティへ4つの値を送りたいです。どなたかお力をお貸しいただけると幸いです。
発生している問題
textViewで値が綿ているか確認したところすべて、同じ値になってしまいます
例 1:1:1:1
メニューアクティビティのソースコード
kotlin
1const val EXTRA_VALUE1="com.exapmple.MyApplication.SETTING" 2const val EXTRA_VALUE2="com.exapmple.MyApplication.SETTING" 3const val EXTRA_VALUE3="com.exapmple.MyApplication.SETTING" 4const val EXTRA_VALUE4="com.exapmple.MyApplication.SETTING" 5 6class MenuActivity : AppCompatActivity() { 7 8 override fun onCreate(savedInstanceState: Bundle?) { 9 super.onCreate(savedInstanceState) 10 setContentView(com.example.bowlingo.R.layout.activity_menu) 11 12 var value1 = 0 13 var value2 = 1 14 var value3 = 1 15 16 val switch1: Switch = findViewById(R.id.switch1) 17 switch1.setOnCheckedChangeListener { _, isChecked -> 18 if (isChecked) 19 value1 = 1 20 } 21 val switch2: Switch = findViewById(R.id.switch2) 22 switch2.setOnCheckedChangeListener { _, isChecked -> 23 if (isChecked) 24 value2 = 0 25 } 26 val switch3: Switch = findViewById(R.id.switch3) 27 switch3.setOnCheckedChangeListener { _, isChecked -> 28 if (isChecked) 29 value3 = 0 30 } 31 32 val numPicker = findViewById<NumberPicker>(R.id.numPicker) 33 numPicker.wrapSelectorWheel = false 34 val values = arrayOf("3", "5", "7") 35 numPicker.minValue = 0 36 numPicker.maxValue = values.size-1 37 numPicker.displayedValues = values 38 val vlue4= numPicker.value 39 40 val start: Button = findViewById(R.id.start) 41 start.setOnClickListener { // Handler code here. 42 val intent = Intent(this@MenuActivity, MainActivity::class.java).apply { 43 putExtra(EXTRA_VALUE1, value1) 44 putExtra(EXTRA_VALUE2, value2) 45 putExtra(EXTRA_VALUE3, value3) 46 putExtra(EXTRA_VALUE4, value4) 47 } 48 startActivity(intent); 49 } 50 } 51} 52
メインアクティビティ
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val value1 = intent.getIntExtra(EXTRA_VALUE1,0) val value2 = intent.getIntExtra(EXTRA_VALUE2,0) val value3 = intent.getIntExtra(EXTRA_VALUE3,0) val value4 = intent.getIntExtra(EXTRA_VALUE4,0) val textView = findViewById<TextView>(R.id.textView).apply { text = value1.toString() +":" + value2.toString() +":" + value3.toString()+ ":" + value4.toString() } }
試したこと
putExtraの箇所を直接以下のように記入しても、全て同じ値(1:1:1:1)になりました。
putExtra(EXTRA_VALUE1, 1) putExtra(EXTRA_VALUE2, 0) putExtra(EXTRA_VALUE3, 0) putExtra(EXTRA_VALUE4, 0)
補足情報(FW/ツールのバージョンなど)
Androidxを使用しております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/02 12:21