kotlinを使ってandroidアプリケーションを使っています。
EditTextを使って、アクティビティ1でアプリ使用者に文字数(Int型)を入力してもらい
その情報をIntentに受け渡してアクティビティ2で処理をしたいです。
具体的なコードは以下です。
import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) omojiCheck.isChecked = false komojiCheck.isChecked = false sujiCheck.isChecked = false kigoCheck.isChecked = false seisei_bottun.setOnClickListener { onSeiseiTapped() } } private fun onSeiseiTapped(){ val intent = Intent(this, ResultActivity::class.java) intent.putExtra("OMOJI",omojiCheck.isChecked) intent.putExtra("KOMOJI",komojiCheck.isChecked) intent.putExtra("SUJI",sujiCheck.isChecked) intent.putExtra("KIGO",kigoCheck.isChecked) intent.putExtra("NAGASA",Nagasa.text) //ここでintentにInt型の情報を入れたいです。 startActivity(intent) } }
以下、それを受けてのアクティビティ2のコードです。
import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_result.* class ResultActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_result) val omojiCheck = intent.getBooleanExtra("OMOJI",false) val komojiCheck = intent.getBooleanExtra("KOMOJI",false) val sujiCheck = intent.getBooleanExtra("SUJI",false) val kigoCheck = intent.getBooleanExtra("KIGO",false) val passLen = intent.getIntExtra("NAGASA",10) //初期値10にしています。うまく受け取れません。 RandomPasswordLogic.omoji(passLen) val passOmojiList: List<Char> = RandomPasswordLogic.omoji(passLen) val passOmoji: String = HairetuToString.randomOrder(passOmojiList,passLen) when(omojiCheck){ false -> hyoji.text = passLen.toString() true -> hyoji.text = passOmoji } } }
Intentにキーと値がうまく入りません。
具体的には、intent.putExtraの値にIntを入れられません。
共有プリファレンスを使えばいいのでしょうか・・
どなたかご助言ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。