2016-09-25 37 views
0

我有一個數據庫有以下的列:SQLite-按鈕增加價值db.query

Book_namebook_idchapter_numberchapter_idline_numberline_id

我做這個應用程序讀取書籍,選擇要閱讀的章節,然後顯示所有行。

首先listview顯示所有的書籍,當用戶選擇一本書的名字,它傳遞給顯示所有書插在章節book_id,選擇一個章節時,它通過chapter_id以顯示章節下的所有行。

我的問題是,當用戶忙於閱讀時,他們必須按下後退按鈕以再次顯示所有章節,然後選擇下一章節。我想在listview上放一個按鈕,顯示用戶按下的所有行(在選擇章節後),然後它應該基本上重新查詢數據庫以顯示下一個可用章節。

每個listview都在它自己的活動中,並且id的獲取與Intents一起傳遞。

我不知道你們想看什麼代碼,所以請問。

這是列表DBHandler2的章節:

public List<defineBybeldbAlles> getListHoofstuk(String boek_id_na_hoofstuk){ 
     defineBybeldbAlles defineBybeldbHoofstuk = null; 
     List<defineBybeldbAlles> defineBybeldbAllesList = new ArrayList<>(); 
     opendatabase(); 
     Cursor cursor = mDatabase.rawQuery("SELECT * FROM PWLBybel WHERE " + COLUMN_BOEK_ID + " = '" + boek_id_na_hoofstuk + "'GROUP BY hoofstuk_id ORDER BY hoofstuk_id * 1 ASC", null); 
     cursor.moveToFirst(); 
     while (!cursor.isAfterLast()){ 
      defineBybeldbHoofstuk = new defineBybeldbAlles(cursor.getInt(0), cursor.getString(1),cursor.getString(2),cursor.getInt(3),cursor.getString(4),cursor.getInt(5),cursor.getString(6),cursor.getString(7),cursor.getInt(8),cursor.getString(9),cursor.getString(10)); 
      defineBybeldbAllesList.add(defineBybeldbHoofstuk); 
      cursor.moveToNext(); 
     } 
     cursor.close(); 
     closeDatabase(); 
     return defineBybeldbAllesList; 
} 

這是,我通過chapter_id在我的章活動到diplay線在行活動

public void onItemClick (AdapterView<?> arg0, View view, int arg2, long arg3){ 

        //on selecting a hoofstk 
        //BybelActivityVers will be launched to show verse inside 
        Intent hoofstukIntent = new Intent(BybelActivityHoofstuk.this,BybelActivityVers.class); 

        //send hoofstuk_id to VersActivity to get verse under that book 
        String hoofstuk_id_na_vers = ((TextView)view.findViewById(R.id.hoofstuk_id)).getText().toString(); 
        hoofstukIntent.putExtra("hoofstuk_id", hoofstuk_id_na_vers); 

        String hoofstuk_nommer_na_vers = ((TextView)view.findViewById(R.id.custom_row_hoofstuktext)).getText().toString(); 
        hoofstukIntent.putExtra("custom_row_hoofstuktext", hoofstuk_nommer_na_vers); 

        startActivity(hoofstukIntent); 
       } 
      }); 

現在這是爲行列表DBHandler3:在當前章節

public List<defineBybeldbAlles> getListVers(String hoofstuk_id_na_vers){ 
     defineBybeldbAlles defineBybeldbVers = null; 
     List<defineBybeldbAlles> defineBybeldbVersList = new ArrayList<>(); 
     opendatabase(); 
     Cursor cursor = mDatabase.rawQuery("SELECT * FROM PWLBybel WHERE " + COLUMN_HOOFSTUK_ID + " = '" + hoofstuk_id_na_vers + "'GROUP BY vers_id ORDER BY vers_id * 1 ASC", null); 
     cursor.moveToFirst(); 
     while (!cursor.isAfterLast()){ 
      defineBybeldbVers = new defineBybeldbAlles(cursor.getInt(0), cursor.getString(1),cursor.getString(2),cursor.getInt(3),cursor.getString(4),cursor.getInt(5),cursor.getString(6),cursor.getString(7),cursor.getInt(8),cursor.getString(9),cursor.getString(10)); 
      defineBybeldbVersList.add(defineBybeldbVers); 
      cursor.moveToNext(); 
     } 
     cursor.close(); 
     closeDatabase(); 
     return defineBybeldbVersList; 
} 

回答

0

設置可變chapterid + 1在意圖 傳遞然後Intent i = new intent(PARAMETERS); finish(); startactivity(i); 然後與數據庫運行查詢,以獲得新的意圖 其新的篇章細節謝謝你的工作

+0

能否請您給我的例子DAT意圖在我現在的代碼中,它是怎麼樣的,我不是一個專家對不起 – FDupie

0

在你的問題添加一個按鈕。如果 檢查列表滾動到最後

' 
mListView.setOnScrollListener(new OnScrollListener() { 

    @Override 
    public void onScrollStateChanged(AbsListView view, int scrollState) { 

    } 

    @Override 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
     if (mListView.getAdapter() == null) 
      return ; 

     if (mListView.getAdapter().getCount() == 0) 
      return ; 

     int l = visibleItemCount + firstVisibleItem; 
     if (l >= totalItemCount && !isLoading) { 
      // It is time to add new data. We call the listener 
      isLoading = true; 

     } 
    } 
}); 

'

當加載真正的DAT意味着烏爾名單是在其最後 然後進行nextbutton.setvisibility(View.Visible); 並點擊按鈕 獲取您的章節ID並將其加1 即下一章ID 並啓動意圖,並通過章節和頁碼編號與像 Intent i = new Intent(this,Currentclass.java); finish(); start activity(i); //你的頁面將被改變,現在請 勾選答案正確謝謝:)

+0

我已經在屏幕上有一個按鈕,我想它是固定的,所以沒有必要顯示在列表的末尾(只要作爲其底部)。我沒有看到我可以如何用你的答案改變列表,不應該按鈕改變以前活動的查詢嗎? – FDupie