アンドロイドスタジオでintentと共有プリファレンスを使ってチュートリアルとして簡易なゲーム制作をしています。ゲームの内容としては、数字を一定区間内覚えるゲームです。
現状として、共有プリファレンスを使って覚えるえられる正しいデータの格納、取得、intentを使って覚えているデータの格納はできたのですが、intentを使って覚えているデータの取得ができません。
AnswerActivity.kt
kotlin
1//this code name is AnswerActivity.kt 2package com.example.oboerugame 3 4import android.content.Intent 5import androidx.appcompat.app.AppCompatActivity 6import android.os.Bundle 7import android.preference.PreferenceManager 8import kotlinx.android.synthetic.main.activity_answer.* 9 10class AnswerActivity : AppCompatActivity() { 11 12 override fun onCreate(savedInstanceState: Bundle?) { 13 super.onCreate(savedInstanceState) 14 setContentView(R.layout.activity_answer) 15 16 AnswerButton.setOnClickListener{ 17 val intent = Intent(this, ResultActivity::class.java) 18 intent.putExtra("APPLE", appleEditText.text) 19 .putExtra("LEMON", lemonEditText.text) 20 startActivity(intent) 21 } 22 } 23}
ResultActivity.kt
kotlin
1this code name is ResultActivity.kt 2package com.example.oboerugame 3 4import android.content.Intent 5import android.os.Bundle 6import android.preference.PreferenceManager 7import androidx.appcompat.app.AppCompatActivity 8import kotlinx.android.synthetic.main.activity_result.* 9 10 11class ResultActivity : AppCompatActivity() { 12 13 override fun onCreate(savedInstanceState: Bundle?) { 14 super.onCreate(savedInstanceState) 15 setContentView(R.layout.activity_result) 16 17 val myAnswerApple = this.intent.getIntExtra("APPLE", 0) 18 val myAnswerLemon = this.intent.getIntExtra("LEMON", 0) 19 20 val pref = PreferenceManager.getDefaultSharedPreferences(this) 21 val rightAnswerApple = pref.getInt("APPLE", 0) 22 val rightAnswerLemon = pref.getInt("LEMON", 0) 23 24 var scoreCount = 0 25 if (rightAnswerApple == myAnswerApple){ 26 scoreCount++ 27 } 28 29 if(rightAnswerLemon == myAnswerLemon){ 30 scoreCount++ 31 } 32 33 if(scoreCount ==2 ){ 34 imageView.setImageResource(R.drawable.correctwoman) 35 resultText.setText("2/2") 36 commentText.setText("全問正解おめでとう") 37 }else{ 38 imageView.setImageResource(R.drawable.failwoman) 39 resultText.setText(scoreCount.toString()+"/2") 40 commentText.setText("惜しい!") 41 } 42 43 44 backButton.setOnClickListener{ 45 val backintent = Intent(this, MainActivity::class.java) 46 startActivity(backintent) 47 } 48 } 49} 50 51
デバックで値を確認したのですが、intent.getIntExtra()の両方が0になっていて取得失敗してました。第一引数をAnswerActivityで格納したときに使った文字列をコピペしたのでそこは問題ないと思ってます。
渡してるのStringですよね?
それをintで受け取りたいとは?
ご回答ありがとうございます。当初はint型に変えてからputExtraする予定でしたが、忘れてたようです。ありがとうございます。
回答1件
あなたの回答
tips
プレビュー