前提・実現したいこと
以前も同じような質問をしたのですが、イメージが変わったので参考にさせていただきつつやった結果うまくいかないので質問させていただきます。
クイズアプリにてゲーム画面で4択のボタンいずれかを押したら、問題数をカウントして結果画面に送る(その内正解のボタンだったら正解数も送る)ということをしたくて、intentにてカウントした数値を送ろうかと思いやっていたのですが上手くいかないので教えていただきたいです。
まだ知識が浅いので間違いばかりかもしれないかもしれませんが、よろしくお願いします。
発生している問題・エラーメッセージ
result.java Integer seikaisu = intent.getIntExtra(seikaisu,0); エラー: 初期化子内の自己参照 Integer mondaisu = intent.getIntExtra(mondaisu,0); エラー: 初期化子内の自己参照
MainGame.java if (((Button) v).getText().equals(Seikai)) { //正解のボタンが押されたとき int seikaisu = 0; 警告:Variable 'seikaisu' is assigned but never accesed int mondaisu = 0; 警告:Variable 'mondaisu' is assigned but never accesed seikaisu++; mondaisu++; intent = new Intent(MainGame.this, result.class); intent.getIntExtra("seikaisu", 0); intent.getIntExtra("mondaisu", 0); startActivity(intent); }
該当のソースコード
MainGame.java public class MainGame extends Activity { String Seikai; String mKaisetu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //タイトルバーを非表示にする(必ずsetContentViewの前にすること) requestWindowFeature(Window.FEATURE_NO_TITLE); // レイアウトをセットする setContentView(R.layout.activity_main_game); } @Override protected void onResume() { super.onResume(); // 問題文セット処理呼び出し setQuestion(); } // 問題文セット処理 private void setQuestion() { // 作成したDatabaseHelperクラスに読み取り専用でアクセス DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db = dbHelper.getReadableDatabase(); /* SELECT文 テーブル名 MyTableから _idとQuestionNoがマッチする項目を取得する条件式 */ String sql = "SELECT Pref, City0, City1, City2, City3, City4,kaisetu FROM MyTable ORDER BY RANDOM()"; // SQL文を実行してカーソルを取得 Cursor c = db.rawQuery(sql, null); c.moveToFirst(); mKaisetu = c.getString(c.getColumnIndex("kaisetu")); // データベースから取ってきたデータを変数にセット String Kenmei = c.getString(c.getColumnIndex("Pref")); String Choice1 = c.getString(c.getColumnIndex("City1")); // 四択の選択肢1 String Choice2 = c.getString(c.getColumnIndex("City2")); // 四択の選択肢2 String Choice3 = c.getString(c.getColumnIndex("City3")); // 四択の選択肢3 String Choice4 = c.getString(c.getColumnIndex("City4")); // 四択の選択肢4 Seikai = c.getString(c.getColumnIndex("City0")); // 答え // データベースのクローズ処理 c.close(); db.close(); ((TextView) findViewById(R.id.textQuestion)).setText(Kenmei); ((Button) findViewById(R.id.button1)).setText(Choice1); // 四択の選択肢1をボタンに表示 ((Button) findViewById(R.id.button2)).setText(Choice2); // 四択の選択肢2をボタンに表示 ((Button) findViewById(R.id.button3)).setText(Choice3); // 四択の選択肢3をボタンに表示 ((Button) findViewById(R.id.button4)).setText(Choice4); // 四択の選択肢4をボタンに表示 } // 選択肢がクリックされた時の処理 public void onClick(View v) { Intent intent; if (((Button) v).getText().equals(Seikai)) { //正解のボタンが押されたとき int seikaisu = 0; int mondaisu = 0; seikaisu++; mondaisu++; intent = new Intent(MainGame.this, result.class); intent.getIntExtra("seikaisu", 0); intent.getIntExtra("mondaisu", 0); startActivity(intent); } switch (v.getId()) { case R.id.button1: intent = new Intent(MainGame.this, kaitou.class); intent.putExtra("kaisetu", mKaisetu); intent.putExtra("City0",Seikai); int mondaisu = 0; mondaisu++; intent = new Intent(MainGame.this, result.class); intent.getIntExtra("mondaisu", 0); startActivity(intent); // 遷移開始 startActivity(intent); break; case R.id.button2: intent = new Intent(MainGame.this, kaitou.class); intent.putExtra("kaisetu", mKaisetu); intent.putExtra("City0",Seikai); // 遷移開始 startActivity(intent); break; case R.id.button3: intent = new Intent(MainGame.this, kaitou.class); intent.putExtra("kaisetu", mKaisetu); intent.putExtra("City0",Seikai); // 遷移開始 startActivity(intent); break; case R.id.button4: intent = new Intent(MainGame.this, kaitou.class); intent.putExtra("kaisetu", mKaisetu); intent.putExtra("City0",Seikai); // 遷移開始 startActivity(intent); break; } }
result.java public class result extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); } Intent intent = getIntent(); Integer seikaisu = intent.getIntExtra(seikaisu,0); Integer mondaisu = intent.getIntExtra(mondaisu,0); private void kekka() { TextView textView5 = (TextView)findViewById(R.id.textView); String str3 = String.valueOf(seikaisu); textView5.setText(str3); TextView textView6 = (TextView)findViewById(R.id.textView); String str4 = String.valueOf(mondaisu); textView5.setText(str4); } public void returnTop(View view) { Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); } public void onClick(View v) { finish(); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/13 01:08