"진짜 또는 잘못된"유형의 퀴즈가 있습니다. 따라서 두 개의 버튼, 하나는 거짓, 하나는 질문에 대한 텍스트 뷰입니다. 자산 폴더에 sqlite 데이터베이스를 가져 왔습니다. 4 열 : _id, question, correctAnswer, wrongAnswer. 모든 열은 INTEGER를 제외하고는 TEXT입니다. 따라서 모든 correctAnswer 열에 대해 응답이 참인지 거짓인지에 따라 0 또는 1을 설정합니다. 그러나 게임에서 질문이 무엇이든간에 나는 왼쪽의 TRUE 버튼에 잘못 표시되고 오른쪽 FALSE 버튼은 맞습니다. 내가 뭘 잘못하고 있는지 모르겠다. 어쨌든, 여기에 코드입니다 : 나는 100 % 명확하지 않다SQLite 데이터베이스의 정수로 부울 값
public class Kviz extends Activity implements OnClickListener{
Button true,false;
TextView question;
LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();
private String generateWhereClause(){
StringBuilder result = new StringBuilder();
for (Long l : mAnsweredQuestions){
result.append(" AND _ID <> " + l);
}
return result.toString();
}
private class Answer {
public Answer(int opt, boolean correct) {
option = opt;
isCorrect = correct;
}
int option;
boolean isCorrect;
}
Runnable mLaunchTask = new Runnable() {
public void run() {
nextQuestion();
}
};
Handler mHandler = new Handler();
final OnClickListener clickListener = new OnClickListener() {
public void onClick(View v) {
Answer ans = (Answer) v.getTag();
if (ans.isCorrect) {
Toast.makeText(getApplicationContext(), "Correct!", Toast.LENGTH_SHORT).show();
mHandler.postDelayed(mLaunchTask,1200);
}
else{
Toast.makeText(getApplicationContext(), "Incorrect!", Toast.LENGTH_SHORT).show();
mHandler.postDelayed(mLaunchTask,1200);
}
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kviz);
inicijalizujVarijable();
nextQuestion();
}
private void nextQuestion() {
TestAdapter mDbHelper = new TestAdapter(this);
DataBaseHelper myDbHelper = new DataBaseHelper(this);
if(!myDbHelper.checkDataBase()){
mDbHelper.createDatabase();
}
try{
mDbHelper.open();
Cursor c = mDbHelper.getTestData(generateWhereClause());
c.moveToFirst();
mAnsweredQuestions.add(c.getLong(0));
List<Answer> labels = new ArrayList<Answer>();
if (c.getInt(2)==1){
labels.add(new Answer(c.getInt(2), true));
labels.add(new Answer(c.getInt(3), false));
tacno.setTag(labels.get(0));
netacno.setTag(labels.get(1));
}else{
labels.add(new Answer(c.getInt(2), false));
labels.add(new Answer(c.getInt(3), true));
netacno.setTag(labels.get(0));
tacno.setTag(labels.get(1));
}
true.setOnClickListener(clickListener);
false.setOnClickListener(clickListener);
}
finally{
mDbHelper.close();
}
}
private void inicijalizujVarijable() {
true = (Button) findViewById(R.id.bTacno);
false = (Button) findViewById(R.id.bNetacno);
question = (TextView) findViewById(R.id.tvPitanje);
}
public void onClick(View v) {
}
}
왜 데이터베이스에'정답'열과'오답'열이 있습니까? 그들이 모두 true/false 인 경우 가능한 결과가 2 개뿐입니다. 그렇지 않거나 1 개의 열만 사용할 수 있습니다. – ObieMD5
글쎄, 네 말이 맞아,하지만 그건 내 문제를 해결하지 못한다. – marjanbaz
무슨 일이 일어나고 있는지 분명히 밝혀야합니다.별로 의미가 없습니다. 나는 당신이 대답 버튼을 누르는 것에서 원하는 결과를 얻지 못한다는 것을 알고 있습니다. 그러나 그것이 일어나는 경우, 나는 이해하지 못합니다. – ObieMD5