2016-09-25 34 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