В этом фрагменте кода, когда прокрутка заканчивается, метод Log.d()
выполняется 3 раза. Почему это происходит и как определить конец списка для выполнения метода только один раз?
Snippet:
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (getIntent().getBooleanExtra("isFavorites", false) == false) {
try {
if (visibleItemCount > 0 && firstVisibleItem + visibleItemCount == totalItemCount) {
Log.d(TAG, "Adding to list");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Вы можете реализовать boolean
переменную, чтобы обеспечить выполнение оператора if
только один раз.
boolean executed = false;
а также
if(visibleItemCount > 0
&& firstVisibleItem + visibleItemCount == totalItemCount
&& !executed)
{
executed = true;
}
if
будет выполняться столько раз, сколько указано вvisibleItemCount
. Сколько предметов вы видите, 3?