ECLIPSE4.5にAndroid 2.1をインポートして、四択のクイズアプリを作成しています。
Database.javaに下記のクラスを作成します。
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→クイズの内容,正解,A1~A4
さらに下記のActivity クラスを作成します。
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();
実行すると、エラーログに
android.database.sqlite.SQLite Exeption:"SELECT_id,":syntax error(code 1):,while compiling:SELECT_id,Quiz,~Ans4 From MY Table WHERE_id=1
と出ます。どのように書き換えたらよいでしょうか。どうぞ、よろしくお願いします。