クイズタイトル、四択のクイズを書き込むためのレイアウトファイル作成。Databasejavaクラスを
下記のように作成しました。*34行目までは(問題','解答','A','B','C','D',')の順に直接書き込み、35行目行目以降は、(問題','○○,解答','○○,選択1','A.○○','選択2','B.○○','選択3','C.○○','選択4','D.○○',')と、約100問ほど書き込みました。
package jp.example.quiz;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class Database extends SQLiteOpenHelper{
public Database(Context context){ super(context, "MyTable.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL("CREATE TABLE MyTable" +
"(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT" +
",Quiz TEXT" +
",Ans0 TEXT" +
",Ans1 TEXT" +
",Ans2 TEXT" +
",Ans3 TEXT" +
",Ans4 TEXT" +
")");
db.execSQL("INSERT INTO MyTable(Quiz,Ans0,Ans1,Ans2,Ans3,Ans4)values
(問題,回答,クイズ1,クイズ2,クイズ3,クイズ4)
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
}
}
次に、QuestionActivity.javaのコードを下記のように編集しました。
package jp.example.quiz;
import java.util.Random;
import jp.example.quiz.Database;
import jp.example.quiz.TitleActivity;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class QuestionActivity extends Activity implements OnClickListener{
private String path;
int Correct = 0;
int Cnt = 1;
SQLiteDatabase db; Cursor c; String Ans0; String Ans1; String Ans2; String Ans3; String Ans4; int No[] =new int[5]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_question); Random rnd = new Random(); for(int i = 0; i < 5; i++){ No[i] = rnd.nextInt(10)+1; int x = No[i]; for(i = 0; i < 5; i++) if(No[i] ==x) break; } onQuestion(); } public void onQuestion() { String sql="SELECT _id,Quiz,Ans0,Ans1,Ans2,Ans3,Ans4 FROM MyTable WHERE _id=" + String.valueOf(No[Cnt - 1]); Database dbHelper = new Database(this); db = dbHelper.getReadableDatabase(); c=db.rawQuery(sql,null); c.moveToFirst(); String Quiz = c.getString(c.getColumnIndex("Quiz")); Ans0 = c.getString(c.getColumnIndex("Ans0")); Ans1 = c.getString(c.getColumnIndex("Ans1")); Ans2 = c.getString(c.getColumnIndex("Ans2")); Ans3 = c.getString(c.getColumnIndex("Ans3")); Ans4 = c.getString(c.getColumnIndex("Ans4")); TextView txt = (TextView)findViewById(R.id.Question); txt.setText(Quiz); Button btnAns1 = (Button)findViewById(R.id.button1); Button btnAns2 = (Button)findViewById(R.id.button2); Button btnAns3 = (Button)findViewById(R.id.button3); Button btnAns4 = (Button)findViewById(R.id.button4); btnAns1.setText(Ans1); btnAns2.setText(Ans2); btnAns3.setText(Ans3); btnAns4.setText(Ans4); btnAns1.setOnClickListener(this); btnAns2.setOnClickListener(this); btnAns3.setOnClickListener(this); btnAns4.setOnClickListener(this); } public void onClick(View v){ Button btn = (Button)v; String Answer = (String)btn.getText(); if(Ans0.equals(Answer)){ Correct++; } if(Cnt==5){ Intent intent = new Intent(this,TitleActivity.class); startActivity(intent); }else{ Cnt++; onQuestion(); } }
}
上記の内容で実行しましたところ、34行目までの問題がスタートを押すごとに、繰り返し
実行され、それ以降の問題が実行されません。すべての問題をコンパイルさせるためにはどのようにすればよいでしょうか。皆様のアドバイス、よろしくお願いいたします。
プロジェクトのandroid:targetSdkversion は15。javaは1.8です。