从数据库

时间:2017-03-05 14:40:53

标签: android sqlite android-sqlite

我有一张表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());

        }   

1 个答案:

答案 0 :(得分:0)

  

输出显示我在DB中输入的最后一个数据(选项问题)

这是您在循环中更新保存视图时获得的内容;只会显示最后一行“

。”

如果要显示数据库中的数据列表,则需要在ListView / ViewPager中使用一些Adapter类

  

如果我点击任何选项,应用程序崩溃......

根据错误,c.getString(5)不存在,因此您似乎没有使用正确的列数创建数据库。