2017-03-05 33 views
-2

獲取數據我有一個表,其中c_question我保存了一些問題,這種結構錯誤而從分貝

autoincrement column _id, 
question, 
option1, 
option2, 
option3, 
correct_answer 

現在我想檢索一個TextView,並在RadioGroup中答案的問題。
如果用戶選擇正確的答案,那麼問題和選項將在同一頁面中更改 。

logcat的:在主致命異常..... cursorIndexOutOfBoundException

輸出顯示最後的數據(附答案的問題)我在數據庫中輸入,如果我點擊任何回答,應用程序崩潰。

 String row="SELECT* FROM c_question"; 
     final Cursor c=db.rawQuery(row, null); 
     c.moveToFirst(); 

     if(c.moveToFirst()) 

     { 
    do 
    { 
     tv1.setText(c.getString(1)); 
     r0=(RadioButton)findViewById(R.id.radio0); 
     r0.setText(c.getString(2)); 
     r1=(RadioButton)findViewById(R.id.radio1); 
     r1.setText(c.getString(3)); 
     r2=(RadioButton)findViewById(R.id.radio2); 
     r2.setText(c.getString(4)); 

    k.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      int idd=r.getCheckedRadioButtonId(); 
      r0=(RadioButton)findViewById(idd); 
      String r=r0.getText().toString(); 
      if(r.equals(c.getString(5))) 
      { 
       Toast.makeText(QuestionsOn.this, "correct!!!", 123).show(); 
       ; 

     } else 
      Toast.makeText(QuestionsOn.this, "Incorrect!!!", 123).show(); 


     } 
    }); 

     } while(c.moveToNext()); 

     } 
+2

我們可以得到完整的堆棧跟蹤嗎? –

+1

注意:你應該只在onCreate中調用'findViewById',而不是在循環中重複使用 –

回答

0

輸出,顯示最後的數據(問題與選項)我在DB

這是進入,當你更新循環保存意見你會得到什麼;只有最後一個「行」會顯示。

如果你想顯示從數據庫中的數據的列表,你需要一些適配器類在ListView/ViewPager

,如果我點擊任何選項,應用程序崩潰...

根據錯誤,c.getString(5)不存在,所以好像你沒有創建正確數量的列的數據庫。

+0

嘿謝謝,但現在我使用openhelper來做它......但我得到另一個問題..我編輯了這個問題..請建議 – Abhishek

+0

OpenHelper應該只觸摸數據庫,而不是自己在UI中調用setText,所以我不認爲這是問題所在。而且我不能說沒有[mcve]的代碼有什麼問題 –

+0

你確實調用了'if(cr.moveToFirst())'並且得到了兩次光標的計數......爲什麼?如果將光標移回第一個,則必須將ID重​​置爲1 –