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

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

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

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Android Studio

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

Q&A

解決済

1回答

3402閲覧

android studio クイズアプリで結果を表示させたい

hanamero50

総合スコア18

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Android Studio

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

0グッド

0クリップ

投稿2018/12/11 12:25

前提・実現したいこと

クイズアプリで10問解いた後に10問中何問正解でしたと結果を表示させたいです。
流れは クイズスタート→(問題表示及び回答画面→解説画面)10回繰り返す→結果表示
といった流れです。

問題表示から解説画面へ遷移して、また別の問題を表示させるところまではできたのですが、10回解いた後の流れをどう記述すればよいのか参考のサイトなどでもいいので教えていただけるとうれしいです。

該当のソースコード

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(); 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; switch (v.getId()) { case R.id.button1: intent = new Intent(MainGame.this, kaitou.class); intent.putExtra("kaisetu", mKaisetu); intent.putExtra("City0",Seikai); // 遷移開始 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; } }
public class kaitou extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //タイトルバーを非表示にする(必ずsetContentViewの前にすること) requestWindowFeature(Window.FEATURE_NO_TITLE); // レイアウトをセットする setContentView(R.layout.activity_kaitou); Intent intent = getIntent(); String City0 = intent.getStringExtra("City0"); String kaisetu = intent.getStringExtra("kaisetu");    //解説 if (kaisetu != null) { ((TextView) findViewById(R.id.textView3)).setText(kaisetu); }    //答え if (City0 != null) { ((TextView) findViewById(R.id.textView)).setText(City0); } } //ボタンクリック時の関数 public void onClick(View v) { Intent intent; switch (v.getId()) { case R.id.button3: intent = new Intent(kaitou.this, MainGame.class); // 遷移開始 startActivity(intent); break; } } }
public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context) { /* ここで任意のデータベースファイル名と、バージョンを指定する データベースファイル名 = MyTable.db バージョン = 1 */ super(context, "MyTable.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { // テーブルの作成 db.execSQL("CREATE TABLE MyTable " + "(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT" + ", Pref TEXT" + ", City0 TEXT" + ", City1 TEXT" + ", City2 TEXT" + ", City3 TEXT" + ", City4 TEXT" + ",kaisetu TEXT" + ",Clear INTEGER" + ")"); // 初期データ投入 db.execSQL("INSERT INTO MyTable(Pref,City0, City1, City2, City3, City4,kaisetu,Clear) values ('問題文','正解','問1','正解','問3','問4','これは解説です',1);"); public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

10回解いた後の流れをどう記述すればよいのか

どこがわからないのかよくわかりませんが、簡単にやるならクラス変数を作ります。

class example { int question = 1; int score = 0; if( question == 11 ){ // 10もん終わったら(11問目に入ったら) question--; // 11問になってしまうので-1 // 画面遷移 } public void Mondai() // 関数名適当なので注意 { // 問題出す if( 正解 ) score++; question++; } }

少しめんどくさくても安全性で考えるとパッケージ分けてpackage変数かクラスです

package main.score; // あくまでクラスはイメージ class QAndScore { private Integer score = 0; private Integer question = 1; public QAndScore() { // 初期化 } public int getScore() { return score; // ボクシング(クラスとデータ型の自動変換) } }

#追記
questionを問題数、scoreを正解数とすれば、画面遷移はできるということですので、実装できると思います。

投稿2018/12/11 12:42

編集2018/12/12 08:21
yukkuri

総合スコア624

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

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

hanamero50

2018/12/11 13:23

説明不足ですみません。 10回解いた結果を次の結果画面に表示させるにはどのようにすればよいかわからなかったのですが、参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問