質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

3499閲覧

android studio intentで数値を送りたいがエラーになってしまう

hanamero50

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/12/12 13:57

前提・実現したいこと

以前も同じような質問をしたのですが、イメージが変わったので参考にさせていただきつつやった結果うまくいかないので質問させていただきます。

クイズアプリにてゲーム画面で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(); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ダブルクォーテーションが抜けています。

java

1 Integer seikaisu = intent.getIntExtra("seikaisu",0); 2 Integer mondaisu = intent.getIntExtra("mondaisu",0);

ない状態では「まだ初期化していない変数」をキーに使おうとしていたためエラーがでています。

投稿2018/12/12 14:20

swordone

総合スコア20649

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hanamero50

2018/12/13 01:08

気が付きませんでした、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問