This is my first time to post anything here and i am not so good with the formatting yet and this post isnt perfect either. I just really need help. Im a noob.
The getannswer function is where the events are controlled depending on the users input.
public void getAnswer(String AnswerString) {
if (this.ans.equals(AnswerString)) {
// if conditions matches increase the int (score) by 1
// and set the text of the score view
this.score++;
this.scored.setText("" + this.score);
Toast.makeText(getApplicationContext(), "CORRECT!", Toast.LENGTH_SHORT).show();
db.getQuestion();
} else {
// if the answer is wrong start activity and finish the test
Intent intent = new Intent(Testactivity.this, result.class);
Toast.makeText(getApplicationContext(), "WRONG, SORRY!", Toast.LENGTH_SHORT).show();
db.getScore(test_entry.username, this.score);
// passing the int value
Bundle b = new Bundle();
b.putInt("score", score); // Your score
intent.putExtras(b); // Put your score to your next
startActivity(intent);
finish();
}
}
getquestion is where I tried to implement a way to get questions from the database. My problem here is that I cant get it to skip questions it has already taken. As you can see, I tried to use images in some questions but that didnt work out so well and its not the point of the question.
public void getQuestion() {
Random r = new Random();
int n = r.nextInt(20);
db = this.getReadableDatabase();
ctr++;
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_QUEST + " WHERE `qid` = " + n + ";", null);
if (cursor.moveToFirst()) {
if(cursor.getInt(6) == 1) {
ta.txtQuestion.setVisibility(View.VISIBLE);
ta.txtQuestion.setText(cursor.getString(1).toString());
/*Log.e("IMAGE", "I WAS HERE");
ta.img.setVisibility(View.VISIBLE);
int imageResource = draw.getResources().getIdentifier("@drawable/"+cursor.getString(1), null, PACKAGE);
Drawable res = draw.getResources().getDrawable(imageResource);
ta.img.setImageDrawable(res);
//ta.img.setImageResource(imageResource);*/
} else {
ta.txtQuestion.setVisibility(View.VISIBLE);
ta.txtQuestion.setText(cursor.getString(1).toString());
}
ta.button1.setText(cursor.getString(3).toString());
ta.button2.setText(cursor.getString(4).toString());
ta.button3.setText(cursor.getString(5).toString());
ta.ans = cursor.getString(2).toString();
Log.e("Current Question ID", Integer.toString(n));
Testactivity.txtCounter.setText(Integer.toString(ctr));
}
If I have left out any relevant piece of code or description.. Please let me know so I could update this post.
public List<Question> getAllQuestions() {
List<Question> quesList = new ArrayList<Question>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_QUEST;
dbase = this.getReadableDatabase();
Cursor cursor = dbase.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
// Question quest = new Question();
//quest.setID(cursor.getInt(0));
Question quest = new Question();
quest.setID(cursor.getInt(0));
quest.setQUESTION(cursor.getString(1));
quest.setANSWER(cursor.getString(5));
quest.setOPTA(cursor.getString(2));
quest.setOPTB(cursor.getString(3));
quest.setOPTC(cursor.getString(4));
quesList.add(quest);
} while (cursor.moveToNext());
}
// return quest list
return quesList;
}
the one above is the newer function that gets the questions from the database. however. I am not able to use the NEWID() function which was supposed to return rows with randomly generated IDs. Or maybe my understanding is just wrong in this.