Я пытаюсь получить общее количество записей в таблице базы данных Sqlite, когда в конце прокрутки списка List. Но основная проблема заключается в том, что первый раз подсчет считается точным. Когда я снова прокрутка в конце счета - это увеличение. Предположим, у меня есть 181 общее количество записей, и снова прокрутите в конце, чтобы получить счет 362, снова прокрутите 543, ... 724, ... 905 и т. Д. Почему бы не получить постоянную ценность, например, 181. Если кто-то поможет мне реши это?Как получить количество строк SQLite в Android
Вот мой код для получения общего количества записей в постоянном классе
public final class Constant
{
public static SQLiteDatabase db;
public static MyDbHelper dbhelper;
public static int GetLocalPages(Context context)
{
dbhelper = new MyDbHelper(context);
dbhelper.onOpen(db);
String query = "select count(*) from ALL_Post";
db = dbhelper.getWritableDatabase();
Cursor c = db.rawQuery(query, null);
if (c.moveToFirst())
{
totalRowCount += c.getInt(0);
Log.e("11111 ", " totalRowCount = " + totalRowCount);
}
if(totalRowCount < 50)
{
num= 1 ;
Log.e("22222 "," num= " + num);
}
if(totalRowCount > 50)
{
num= totalRowCount/50;
Log.e("33333 ", " num= " + num);
}
if(totalRowCount % 50> 0)
{
num += 1;
Log.e("44444 ", " num = " + num);
}
return num ;
}
}
А вот мой ListView scrollListener Метод
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)
{
lastInScreen = firstVisibleItem + visibleItemCount;
//Log.e("","lastInScreen="+lastInScreen);
if(lastInScreen == totalItemCount)
{
Toast.makeText(getApplicationContext(), "Your Last Item." + lastInScreen , Toast.LENGTH_SHORT).show();
int values= Constant.GetLocalPages(getApplicationContext());
Log.e("", "values=" + values);
}
}
});
Но как. Можете ли вы дать мне фрагмент кода. – jandroid
Ваш запрос верен. просто напишите totalRowCount = c.getInt (0); вместо totalRowCount + = c.getInt (0); Вы получите постоянное значение строк –