2017-08-06 58 views
-2

我真的很想搞清楚,並沒有找到答案或方法來做到這一點。顯示一個接一個的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(); 
    } 




} 

迄今所做的,我能夠顯示第一,當我點擊按鈕的最後一個問題
我無法顯示的問題。

任何提示或建議?

+0

這是否適用? https://stackoverflow.com/questions/17258975/sqlite-query-get-all-columns-of-a-rowandroid – Xype

回答

0

在你的VoteClick方法你做getReadableDatabase,這是爲時已晚,將此行轉換爲onCreate方法。讀取數據庫之前,您必須打開數據庫(位於questionsListView)。

mDatabaseHelper.getReadableDatabase();//move to onCreate 

補充一點:

startManagingCursor(data); 
    data.moveToFirst(); 

前行:

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

好的,但它仍然從第一個跳到最後一個記錄... –

+0

該應用程序崩潰與此並且android studio在startManaging上拉了一條線並說出了它的棄用 –

+0

它可以被棄用,你仍然可以使用它,它只是意味着有更好的方法(使用光標加載器),但是這很難寫。 –

0

你好找到了解決我的問題

事實證明,我必須做出新的int變量 從第一個ID 中獲得它的值,並在e ND每次按下按鈕,直到我到達最後光標位置whhere我將光標移動到第一位置

公共無效VoteClick(查看視圖){

Cursor data = mDatabaseHelper.getData(); 
    data.moveToPosition(q); 
    data.moveToNext(); 
    qTextView.setText(data.getString(1)); 
    while (data.isLast()) { 
     data.moveToFirst(); 
     q = data.getPosition(); 
    } 
    q = q+1; 
    }