I am new to programming. This is my code where I am trying to build a quiz app using Sqllite. Whenever I try to assign String Array ques to a method similar to method getopta, the program says no more question available(executes else) but works fine with getData method. why? This is the code for Sqlclass handler & MainActivity.
`package com.example.seems;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
public class Sqlclass {
public static final String KEY_ROWID = "_id";
public static final String KEY_TAG = "Tag";
public static final String KEY_QUESTION = "Question";
public static final String KEY_OPTA = "Optiona";
public static final String KEY_OPTB = "Optionb";
public static final String KEY_OPTC = "Optionc";
public static final String KEY_ANSWER = "Answer";
private static final String DATABASE_NAME = "NEWDB.db";
private static final String DATABASE_TABLE = "SEEMS_quiz";
private static final int DATABASE_VERSION = 1;
private Dbhelper ourhelper;
private final Context ourcontext;
private SQLiteDatabase ourdatabase;
String[] quesArray = {};
String[] optaArray = {};
String[] optbArray = {};
String[] optcArray = {};
private static class Dbhelper extends SQLiteOpenHelper {
public Dbhelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_TAG
+ " TEXT, " + KEY_QUESTION + " TEXT, " + KEY_OPTA
+ " TEXT, " + KEY_OPTB + " TEXT, " + KEY_OPTC + " TEXT, "
+ KEY_ANSWER + " TEXT); ");
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public Sqlclass(Context c) {
ourcontext = c;
}
public Sqlclass open() throws Exception {
ourhelper = new Dbhelper(ourcontext);
ourdatabase = ourhelper.getWritableDatabase();
return this;
}
public void close() {
ourhelper.close();
}
public long createEntry(String tag, String question, String opta,
String optb, String optc, String ans) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(KEY_TAG, tag);
cv.put(KEY_QUESTION, question);
cv.put(KEY_OPTA, opta);
cv.put(KEY_OPTB, optb);
cv.put(KEY_OPTC, optc);
cv.put(KEY_ANSWER, ans);
return ourdatabase.insert(DATABASE_TABLE, null, cv);
}
public String[] getData() {
// TODO Auto-generated method stub
String[] coloums = new String[] { KEY_ROWID, KEY_TAG, KEY_QUESTION,
KEY_OPTA, KEY_OPTB, KEY_OPTC };
Cursor c = ourdatabase.query(DATABASE_TABLE, coloums, null, null, null,
null, null);
List<String> qsef = new ArrayList<String>();
List<String> opta = new ArrayList<String>();
List<String> optb = new ArrayList<String>();
List<String> optc = new ArrayList<String>();
int irow = c.getColumnIndex(KEY_ROWID);
int itag = c.getColumnIndex(KEY_TAG);
int iquestion = c.getColumnIndex(KEY_QUESTION);
int iopta = c.getColumnIndex(KEY_OPTA);
int ioptb = c.getColumnIndex(KEY_OPTB);
int ioptc = c.getColumnIndex(KEY_OPTC);
int ians = c.getColumnIndex(KEY_ANSWER);
c.moveToFirst();
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
qsef.add(c.getString(iquestion));
opta.add(c.getString(iopta));
optb.add(c.getString(ioptb));
optc.add(c.getString(ioptc));
quesArray = qsef.toArray(new String[qsef.size()]);
optaArray = opta.toArray(new String[opta.size()]);
optbArray = optb.toArray(new String[optb.size()]);
optcArray = optc.toArray(new String[optc.size()]);
}
return quesArray;
}
public String[] getopta() {
// TODO Auto-generated method stub
return optaArray;
}
public String[] getoptb() {
// TODO Auto-generated method stub
return optbArray;
}
public String[] getoptc() {
// TODO Auto-generated method stub
return optcArray;
}
} ` This is mainActivity
'package com.example.seems;
//import android.support.v7.app.ActionBarActivity;
//import android.support.v7.app.ActionBar;
//import android.support.v4.app.Fragment;
import java.util.Arrays;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
//import android.view.LayoutInflater;
//import android.view.Menu;
//import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
//import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
//import android.os.Build;
public class MainActivity extends Activity implements OnClickListener {
RadioButton R1, R2, R3;
TextView dis;
Button bp, bs, bn;
String[] ques, a, b, c;
int i = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intialize();
bn.setOnClickListener(this);
R1.setOnClickListener(this);
}
private void intialize() {
// TODO Auto-generated method stub
dis = (TextView) findViewById(R.id.tvDisplay);
R1 = (RadioButton) findViewById(R.id.radioButton1);
R2 = (RadioButton) findViewById(R.id.radioButton2);
R3 = (RadioButton) findViewById(R.id.radioButton3);
bp = (Button) findViewById(R.id.b1);
bn = (Button) findViewById(R.id.b2);
setquestion();
}
private void setquestion() {
// TODO Auto-generated method stub
Sqlclass info = new Sqlclass(this);
try {
info.open();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ques = info.getData();
a = info.getopta();
b = info.getoptb();
c = info.getoptc();
info.close();
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.b2:
if (i < ques.length) {
dis.setText(ques[i]);
R1.setText(a[i]);
R2.setText(b[i]);
R3.setText(c[i]);
i++;
break;
} else {
dis.setText("No more questions");
}
}
}
}'
Aucun commentaire:
Enregistrer un commentaire