2015-12-23 71 views
0

我的代碼有問題。我在android sqlite中創建了2個表,我喜歡使用AlertDialog顯示數據庫中的數據,但是當我單擊視圖按鈕時,它將返回到上一個活動。請檢查我的代碼。謝謝android:顯示數據從sqlite到AlertDialog

我DatabaseHelper:

private static final String TABLE_CREATE_QUIZ = "create table quiz (QUIZ_ID integer primary key not null ,"+ 
     "question text not null, answer1 text not null, answer2 text not null, answer3 text not null, answer4 text not null);"; 

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



@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(TABLE_CREATE); 
    db.execSQL(TABLE_CREATE_QUIZ); 
    this.db = db; 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    String query = "DROP TABLE IF EXISTS "+TABLE_NAME; 
    String query1 = "DROP TABLE IF EXISTS "+TABLE_CREATE_QUIZ; 
    db.execSQL(query); 
    db.execSQL(query1); 
    this.onCreate(db); 

} 

public void insertContact(Contact c) { 
    db = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 

    String query = "select * from contacts"; 
    Cursor cursor = db.rawQuery(query , null); 
    int count = cursor.getCount(); 

    values.put(COLUMN_ID , count); 
    values.put(COLUMN_NAME , c.getName()); 
    values.put(COLUMN_EMAIL , c.getEmail()); 
    values.put(COLUMN_UNAME, c.getUname()); 
    values.put(COLUMN_PASS, c.getPass()); 

    db.insert(TABLE_NAME, null, values); 
    db.close(); 
} 
    public boolean insertQuest(String question, String answer1, String answer2, String answer3, String answer4){ 
    db = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     String query1 = "select * from quiz"; 
     Cursor cursor = db.rawQuery(query1 , null); 
     int count = cursor.getCount(); 

     contentValues.put(COLUMN_QUIZ_ID, count); 
     contentValues.put(COLUMN_QUESTION, question); 
     contentValues.put(COLUMN_ANSWER1, answer1); 
     contentValues.put(COLUMN_ANSWER2, answer2); 
     contentValues.put(COLUMN_ANSWER3, answer3); 
     contentValues.put(COLUMN_ANSWER4, answer4); 

     long result = db.insert(TABLE_QUIZ, null, contentValues); 
     if(result == -1) 
      return false; 
     else 
     return true; 

} 
public Cursor getAllData(){ 
    db = this.getWritableDatabase(); 
    Cursor res = db.rawQuery("select * from"+TABLE_QUIZ,null); 
    return res; 
} 

我查看代碼:

public void viewAll(){ 
     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      Cursor res = helper.getAllData(); 
       if(res.getCount()== 0){ 
        showMessage("Error","Nothing found"); 
        return; 
       } 
       StringBuffer buffer = new StringBuffer(); 
       while (res.moveToNext()){ 
        buffer.append("Id:"+ res.getString(0)+"\n"); 
        buffer.append("Question:"+ res.getString(1)+"\n"); 
        buffer.append("Answer1:"+ res.getString(2)+"\n"); 
        buffer.append("Answer2:"+ res.getString(3)+"\n"); 
        buffer.append("Answer3:"+ res.getString(4)+"\n"); 
        buffer.append("Answer4:"+ res.getString(5)+"\n\n"); 
       } 

       showMessage("Data",buffer.toString()); 
      } 
     }); 
    } 

    public void showMessage(String title, String Message){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setCancelable(true); 
     builder.setTitle(title); 
     builder.setMessage(Message); 
     builder.show(); 

    } 
+0

謝謝你sir cricket_007 –

+0

這是否解決了你的問題? –

+0

是的,先生,非常感謝你 –

回答

1

你或許應該下降TABLE_QUIZ,而不是TABLE_CREATE_QUIZ如果是這樣的表名。

但是,您的問題在於,您在getAllData方法中遺漏了fromTABLE_QUIZ之間的空格。