2016-05-16 79 views
1

我正在開發一個android學習應用程序,我遇到了問題。我無法更新數據庫中的問題。它只能顯示數據庫中的前五個問題。這是我的數據庫代碼,有沒有人可以幫助我?由於爲測試應用程序添加更多問題到數據庫

package com.example.learningapp.test; 

private static final int DATABASE_VERSION = 1; 
// Database Name 
private static final String DATABASE_NAME = "Test"; 
// tasks table name 
private static final String TABLE_QUEST = "quest"; 
// tasks Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_QUES = "question"; 
private static final String KEY_ANSWER = "answer"; //correct option 
private static final String KEY_ans1= "Ans1"; //option a 
private static final String KEY_ans2= "Ans2"; //option b 
private static final String KEY_ans3= "Ans3"; //option c 
private SQLiteDatabase dbase; 
public DbHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 
@Override 
public void onCreate(SQLiteDatabase db) { 
    dbase=db; 
    String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_QUEST + " (" 
      + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_QUES 
      + " TEXT, " + KEY_ANSWER+ " TEXT, "+KEY_ans1 +" TEXT, " 
      +KEY_ans2 +" TEXT, "+KEY_ans3+" TEXT)"; 
    db.execSQL(sql);   
    addQuestions(); 
    //db.close(); 
} 

private void addQuestions() 
{ 
    Question q1=new Question("Tumbuhan memerlukan cahaya matahari untuk" + 
      " _________________.","Bernafas", "Hidup", "Membuat Makanan", "Membuat Makanan"); 
    this.addQuestion(q1); 
    Question q2=new Question("Manusia memerlukan empat keperluan asas, " + 
      "terdiri daripada", "Udara, Makanan, Cahaya Matahari, Air", "Air, Udara, Makanan, Tempat Perlindungan", 
      "Udara, Tempat Perlindungan, Cahaya Matahari, Air", "Air, Udara, Makanan, Tempat Perlindungan"); 
    this.addQuestion(q2); 
    Question q3=new Question("Sisa-sisa makanan disingkirkan keluar melalui dubur" + 
      " sebagai tinja.Proses ini dinamakan ______________?","Penyahtinjaan", "Perkumuhan","Pernafasan","Penyahtinjaan"); 
    this.addQuestion(q3); 
    Question q4=new Question("Semasa menarik nafas, dada akan _____________ dan _____________." + 
      " Pada masa yang sama, udara masuk ke peparu.", "naik, mengembang", "naik turun, menghempis", "naik, menghempis","naik, mengembang"); 
    this.addQuestion(q4); 
    Question q5=new Question("Berikut adalah cara tumbuhan melindungi diri" + 
      " daripada musuh, KECUALI","Bergetah","Beracun","Daun jejarum","Daun jejarum"); 
    this.addQuestion(q5); 
    Question q6= new Question("Pilihkan jawapan proses kitar hidup" + 
      "rama-rama yang betul.", "telur-> kepompong-> larva->rama-rama dewasa", "telur-> larva-> kepompong-> rama-rama dewasa", 
      "telur-> pupa-> larva -> rama-rama dewasa", "telur-> larva-> kepompong-> rama-rama dewasa"); 
    this.addQuestion(q6); 
    Question q7= new Question("Pilihkan jawapan proses kitar hidup" + 
      "katak yang betul.", "telur-> berudu-> katak muda-> katak dewasa", "telur-> katak muda-> katak dewasa-> kepompong", 
      "telur-> pupa-> katak muda ->katak dewasa", "telur-> berudu-> katak muda-> katak dewasa"); 
    this.addQuestion(q7); 
} 

public void onUpgrade(SQLiteDatabase db, int oldV, int newV) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_QUEST); 
    // Create tables again 
    onCreate(db); 
} 
// Adding new question 
public void addQuestion(Question quest) { 
    //SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(KEY_QUES, quest.getQUESTION()); 
    values.put(KEY_ANSWER, quest.getANSWER()); 
    values.put(KEY_ans1, quest.getans1()); 
    values.put(KEY_ans2, quest.getans2()); 
    values.put(KEY_ans3, quest.getans3()); 
    // Inserting Row 
    dbase.insert(TABLE_QUEST, null, values);   
} 
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)); 
      quest.setQUESTION(cursor.getString(1)); 
      quest.setANSWER(cursor.getString(2)); 
      quest.setans1(cursor.getString(3)); 
      quest.setans2(cursor.getString(4)); 
      quest.setans3(cursor.getString(5)); 
      quesList.add(quest); 
     } while (cursor.moveToNext()); 
    } 

    // return quest list 
    return quesList; 
} 

public int rowcount() 
{ 
    int row=0; 
    String selectQuery = "SELECT * FROM " + TABLE_QUEST; 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    row=cursor.getCount(); 
    return row; 
} 

}

回答

0

您在onCreate加入你的問題。它在第一次啓動時已被調用。好像你以後再添加一個問題。您可以升級數據庫或卸載應用程序並再次安裝,以第二次觸發數據庫創建。無論如何,填寫onCreate中的值不是一個好習慣。

+0

嗨,Evgeniy ...感謝您的建議。但我已經嘗試將數據庫版本從1更新爲2,但似乎並不奏效。它仍然輸出數據庫中的前五個問題。 – user3688834

+0

發佈截圖可能嗎? –

+0

你的意思是截圖的輸出?當問題顯示到問題5時。它不能繼續回到問題6。當我點擊下一步按鈕時,評分結果將顯示。 – user3688834

相關問題