前提・実現したいこと
いつもお世話になっております。
androidアプリを製作しております。
画面遷移から2つのViewを振り分けたくググっていますが
ヒットするサイトが無かったので、質問させていただきました。
やりたいことは、Mainページでラジオボタンで処理を選択し、
実行ボタンから次の画面の表示を切り替えるというものです。
言語はKotlin で intent を使って画面遷移とデータ移行を行っています。
ところが、IF文やWhenを使って処理をしようとすると
関数がグレーアウトしてしまい、一向にうまくいきません。
発生している問題
IF文で囲ったval intent がグレーアウトしてしまう
該当のソースコード
kotlin
1class MainActivity : AppCompatActivity() { 2 override fun onCreate(savedInstanceState: Bundle?) { 3 super.onCreate(savedInstanceState) 4 setContentView(R.layout.activity_main) 5 6 // ホスト名入力EditText 7 val editText1 = findViewById<EditText>(R.id.editText1) 8 // Group化されたRadioButton 9 // radioButton1がSubWindow画面を表示 10 val radioButton1 = findViewById<RadioButton>(R.id.radioButton1) 11 // radioButton2がTestWindow画面を表示 12 val radioButton2 = findViewById<RadioButton>(R.id.radioButton2) 13 // 実行ボタン 14 val runButton = findViewById<Button>(R.id.button1) 15 16 // 実行ボタンがタップされた時の処理 17 runButton.setOnClickListener { 18 if(radioButton1.isChecked){ 19 // radioButton1がTrue 20 val intent = Intent(this, SubWindow::class.java) // ←変数だけグレーアウト 21 }else{ 22 // radioButton1がFalse(radioButton2がTrue) 23 val intent = Intent(this, TestWindow::class.java) // ←変数だけグレーアウト 24 } 25 intent.putExtra("hostName", editText1.text.toString()) 26 startActivity(intent) 27 }
試したこと
if(radioButton1.isChecked){
のところを
Kotlin
1var context = SubWindow::class.java 2if(radioButton2.isChecked){ 3 context = TextWindow::class.java 4 // Error: 5 // ↑Type mismatch: inferred type is Class<TextWindow> but Class<SubWindow> was expected 6 // ↑Type mismatch: inferred type is SubWindow but TextWindow was expected 7 // ↑Type mismatch: inferred type is TextWindow but SubWindow was expected 8} 9val intent = Intent(this, context)
とか
Kotlin
1var select = 0 2if(radioButton2.isChecked) select = 1 3 4when(select){ 5 0 -> {val intent = Intent(this, SubWindow::class.java)} // ←グレーアウト 6 1 -> {val intent = Intent(this, TestWindow:class.java)} // ←グレーアウト 7}
などやってみましたが
エラーが出たり、グレーアウトしたりと
うまくいきませんでした。
ボタンによる振り分けはうまく行きますが、
ほぼ同じソースが2つになってしまうため、
Intent
だけを分けるようにして簡素化したいです。
IF文等での振り分けは出来ないのでしょうか。
すいませんがどなたかご教示ください。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー