假设我的sqlite数据库中有500个数据,并且可以轻松加载数据,我可以从1到10和10到20加载数据,依此类推每次到达listview的结尾时,
这是我的代码
在我的主xml上我有
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
/>
和我的自定义列表项
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp" >
<TextView
android:id="@+id/KeyWord"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/thumbnail"
android:layout_toRightOf="@+id/thumbnail"
android:text="@string/sample"
android:textColor="@color/grey_blue"
android:typeface="serif"
android:textSize="18sp"
android:textStyle="bold"
android:shadowColor="@color/red_minus"
android:layout_marginTop="5dp"/>
<TextView
android:id="@+id/thisSub"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/thisWord"
android:layout_below="@+id/thisWord"
android:text="@string/sample"
android:textColor="#343434"
android:typeface="serif"
android:textSize="16sp" />
</RelativeLayout>
以及我如何将前10行填充到我的MainActivity上的listView
private void displayListView(final String SpinnerData) {
Cursor cursor = null;
try {
cursor = dbHelper.fetchAllData(SpinnerData);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "EER " + e, Toast.LENGTH_LONG).show();
}
String[] columns = new String[]{
DbAdapter.KEY_WORD, DbAdapter.KEY_PRO
};
int[] to = new int[]{
R.id.KeyWord, R.id.thisSub
};
dataAdapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.list_item, cursor, columns, to, 0);
final ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(dataAdapter);
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
final int lastItem = firstVisibleItem + visibleItemCount;
if(lastItem == totalItemCount){
// here i want to add the next 10 rows on scrollend
}
}
});
}
在我的DbAdapter类上使用我的dbHelper
public Cursor fetchAllData(String baseFrom){
Cursor mCursor = null;
if(baseFrom == "ALL"){
mCursor = mDb.query(true,SQLITE_TABLE, new String[]{
KEY_ROWID, KEY_PRO, KEY_WORD},
null, null, null, null, KEY_WORD, "10");
}else{
mCursor = mDb.query(true,SQLITE_TABLE, new String[]{
KEY_ROWID, KEY_PRO, KEY_WORD},
KEY_FROM + " LIKE '" + baseFrom + "%'",
null, null, null, KEY_WORD, "10");
}
if(mCursor != null){
mCursor.moveToFirst();
if (!(mCursor.moveToFirst()) || mCursor.getCount() == 0){
mCursor = null;
}
}return mCursor;
}
我的问题是,我不知道如何在我的listview末尾添加接下来的10行在scrollend,我只是一个新手,这是我自学的一部分。
我正在考虑使用LIMIT来获得接下来的10行。
mCursor = mDb.query(true,SQLITE_TABLE, new String[]{
KEY_ROWID, KEY_PRO, KEY_WORD},
KEY_FROM + " LIKE '" + baseFrom + "%'",
null, null, null, KEY_WORD, "10, 20"); //Here from 10 to 20
并将其附加到我的列表视图的末尾,但我不知道我可以编码。
任何人都可以帮我做到这一点?
我将感谢任何人的帮助。非常感谢你提前!
答案 0 :(得分:0)
正如我在评论中所说,主要问题是一次按10个项目组获取数据。为此,您可以使用SORTing订单。 以下是@ SQLiteDatabase Cursor query的文档。在这种情况下,请查看参数orderBy。