【问题标题】:SQLite- button adds value to db.querySQLite- 按钮为 db.query 增加价值
【发布时间】:2016-09-25 07:41:39
【问题描述】:

我有一个包含以下列的数据库:

Book_namebook_idchapter_numberchapter_idline_numberline_id

我做这个应用是为了看书,选择要阅读的章节,然后显示所有的行。

first listview显示所有书籍,当用户选择书名时,它通过book_id来显示该书下的所有章节,在选择一章时,它通过chapter_id显示所有行在那一章下。

我的问题是,当用户忙于阅读时,他们必须按返回按钮以再次显示所有章节,然后选择下一章节。我想在listview 上放置一个按钮,显示所有行(在选择章节后)供用户按下,然后它应该基本上重新查询数据库以显示下一个可用章节。

每个listview 都在它自己的活动中,并且通过 Intents 传递 id。

我不知道你们想看什么代码,所以请问。

这是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在我的章节活动中来显示线条活动中的线条:

 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;
}

【问题讨论】:

    标签: android sqlite listview android-intent android-sqlite


    【解决方案1】:

    将当前章节中的变量chapterid + 1 设置为intent 传递 然后Intent i = new intent(PARAMETERS); finish(); startactivity(i); 然后使用 db 运行查询以获取新意图中新章节的详细信息 感谢它的工作

    【讨论】:

    • 能否请您给我一个示例,说明它在我当前的代码中的样子,对不起,我不是专家
    【解决方案2】:

    在您的问题中添加一个按钮。 检查列表是否滚动到最后

    '
     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;
    
            }
        }
    });
    

    '

    when is loading is true dat 意味着你的列表在最后 然后制作 nextbutton.setvisibility(View.Visible); 并单击按钮 获取你的章节 id 并添加 1 即下一章 id 并开始意图并使用 dat 意图传递章节和页面 ID,例如 Intent i = new Intent(this,Currentclass.java); finish(); start activity(i); // 你的页面现在将被改变 请勾选正确答案谢谢:)

    【讨论】:

    • 我已经在屏幕上有了一个按钮,我希望它是静止的,所以不需要在列表的末尾显示它(只要它在底部)。我看不出如何使用您的答案更改列表,按钮不应该更改上一个活动的查询吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2018-10-18
    • 2017-09-16
    • 2014-06-30
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多