一个接一个地显示一个SQLite列

时间:2017-08-06 10:05:43

标签: java android sqlite cursor android-sqlite

我真的很想知道这一点,并没有找到答案或方法。

我要做的是将一个保存在SQLite列中的问题一个接一个地显示在TextView中,直到完成。

到目前为止我在主要活动

上所做的工作
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDatabaseHelper = new DatabaseHelper(this);
        btn1star = (Button) findViewById(R.id.btn1star);
        btn2star = (Button) findViewById(R.id.btn2star);
        btn3star = (Button) findViewById(R.id.btn3star);
        mListview = (ListView) findViewById(R.id.qlistview);
        qTextView = (TextView) findViewById(R.id.qTextView);


        questionsListView();

    }

    private void questionsListView() {

        Cursor data = mDatabaseHelper.getData();
        data.moveToFirst();
        qTextView.setText(data.getString(1));

    }


    public void VoteClick(View view){
        mDatabaseHelper.getReadableDatabase();
        Cursor data = mDatabaseHelper.getData();

        if (data.getCount() >=1){


         for (int i = 0; i< data.getCount(); i++) {
             data.moveToNext();

         Log.i("Counted Questions are: ", String.valueOf(data.getCount()));
             qTextView.setText(data.getString(1));

         }


                }

            }



    private void toastmessage (String message){

        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
    }




}

我能够显示第一个,当我点击按钮时最后一个问题
我无法在两者之间显示问题。

任何提示或建议?

2 个答案:

答案 0 :(得分:0)

在你的VoteClick方法中执行getReadableDatabase,这已经太晚了,请将此行移至onCreate方法。您必须先打开数据库才能从中读取数据库(questionsListView)。

mDatabaseHelper.getReadableDatabase();//move to onCreate

添加:

  startManagingCursor(data);
  data.moveToFirst();

在线之前:

if (data.getCount() >=1){

答案 1 :(得分:0)

您好找到了我的问题的解决方案

事实证明我必须创建一个新的int变量 从第一个id获取其值 并在每个按钮结束时按一下,直到我到达最后一个光标位置,我将光标移动到第一个位置

public void VoteClick(查看视图){

{{1}}