Android 将数据插入数据库

Android 将数据插入数据库,android,database,Android,Database,我正在制作一个android问答应用程序。有一个问题有四个答案,四个答案中有一个是正确的。当用户选择错误答案时,游戏就结束了,所以我想把这个问题和真实答案插入数据库,在listview中显示出来。但这对我来说太难了,请帮我一些代码。这是我选择答案的方法: private void onOptionSelected(String option){ if(!isGamePaused && !isGameEnded) { ATriviaQuestion tT

我正在制作一个android问答应用程序。有一个问题有四个答案,四个答案中有一个是正确的。当用户选择错误答案时,游戏就结束了,所以我想把这个问题和真实答案插入数据库,在listview中显示出来。但这对我来说太难了,请帮我一些代码。这是我选择答案的方法:

private void onOptionSelected(String option){

    if(!isGamePaused && !isGameEnded) { 
        ATriviaQuestion tTQuestion = myListOfTriviaQuestions.get(currentQuestionNumber);
        if(option.equals(tTQuestion.GetOptions().get(tTQuestion.GetAnswer() - 1))) {
            correct += 1;
            remainingTime = mySecondsPassed;
            totalPoints += remainingTime * pointsPerRemainingSecond; 
            totalPoints += pointsPerCorrectAnswer;  
            Toast.makeText(PlayGame.this, "chuan cmnr", Toast.LENGTH_SHORT).show();
        }
        else{questionsAsked = totalQuestions;
            incorrect += 1;
            totalPoints -= pointsPerWrongAnswer;
            Toast.makeText(PlayGame.this,tTQuestion.GetOptions().get(tTQuestion.GetAnswer() - 1), Toast.LENGTH_LONG).show();
            isGameEnded=true;
            EndGame();

        }

        mySecondsPassed = config.GetTimeToAnswer();
        UpdateTimerColors(mySecondsPassed);


        if(questionsAsked >= totalQuestions){   
            isGameEnded=true;
            EndGame();
            DisplayResults();
        } else {                    

            currentQuestionNumber=GenerateQuestionNumber();
            PopulateQuestion();
        }

    }else{
        PausedOrEndedGameResponse();
    }
}
这是我的database.java

    public Quanly_congviec(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override
public void onCreate(SQLiteDatabase db) {

    String SQL_String = "CREATE TABLE " + ten_table + "("
            + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
            + KEY_NOIDUNG_CONGVIEC + " TEXT,"
            + KEY_THOIGIAN_THUCHIEN + " TEXT, "
            + KEY_MUCDO_QUANTRONG + " TEXT" + ")";
    db.execSQL(SQL_String);

}
@Override
public void onUpgrade(SQLiteDatabase db, int oldversion, int newversion) {

    db.execSQL("DROP TABLE IF EXISTS " + ten_table);


    onCreate(db);   
}


public List<Congviec> getAllCongviec() {
    List<Congviec> CongviecList = new ArrayList<Congviec>();
    String[] ds_dieukien_loc=null; 

    String selectQuery = "SELECT  * FROM " + ten_table;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, ds_dieukien_loc);


    if (cursor.moveToFirst()) {
        do {
            Congviec Congviec = new Congviec();
            Congviec.set_id(Integer.parseInt(cursor.getString(0)));
            Congviec.setNoidung_congviec(cursor.getString(1));
            Congviec.setThoigian_thuchien(cursor.getString(2));
            Congviec.setMucdo_quantrong(cursor.getString(3));

            CongviecList.add(Congviec);
        } while (cursor.moveToNext());
    }
    db.close();
    return CongviecList;    
}


在数据库表中有三行,但我想在第1行中插入问题,第2行和第3行中的真实答案为空。

最好的数据库设计是每个问题及其所有答案有一行。对于有四个答案的问题,其中一个答案是正确的,列名称可以是

_身份证 问题: 正确答案 不正确的1 不正确的2 不正确的3 命令

(我会使用order设置问题出现的顺序)

另一种选择是一个表存储问题,另一个表存储每个问题的答案,但第一个选项要简单得多

最后说明:
如果您的第一语言不是英语,那么使用您的母语作为变量名和列名是很自然的。唉,大多数开发人员使用英语。您的代码对我来说可读性差得多,因为我无法阅读(我猜)越南语。这不公平,但确实如此。

很抱歉给您带来不便,我的语言是越南语,非常感谢您的回答,:)。
public void them_congviec(Congviec congviec) {
     SQLiteDatabase db = this.getWritableDatabase();
     String nullColumnHack=null; 
     ContentValues values = new ContentValues();
     if (congviec.get_id()!=-1) values.put(KEY_ID,congviec.get_id());
     values.put(KEY_NOIDUNG_CONGVIEC, congviec.getNoidung_congviec()); 
     values.put(KEY_THOIGIAN_THUCHIEN, congviec.getThoigian_thuchien()); 
     values.put(KEY_MUCDO_QUANTRONG, congviec.getMucdo_quantrong()); 
     db.insert(ten_table, nullColumnHack, values);
     db.close();        
}


public void xoatatca_congviec() {
     SQLiteDatabase db = this.getWritableDatabase();
     String whereClause="";
     String[] whereArgs=null;
     db.delete(ten_table, whereClause, whereArgs);          
     db.close();        
}

public void xoa_1_congviec(int id){
    SQLiteDatabase db= this.getWritableDatabase();
    db.execSQL("delete from  " + ten_table + " where _id="+id);
    db.close();
}

public int sua_1_congviec(Congviec congviec) { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put(KEY_NOIDUNG_CONGVIEC, congviec.getNoidung_congviec());  
     values.put(KEY_THOIGIAN_THUCHIEN, congviec.getThoigian_thuchien());  
     values.put(KEY_MUCDO_QUANTRONG, congviec.getMucdo_quantrong());  

     String whereClause=KEY_ID + "=?"; 
     String[] whereArgs={String.valueOf(congviec.get_id())}; 
     return db.update(ten_table, values, whereClause, whereArgs); 
    }