2

このコード スニペットでは、スクロールがリストの最後に来ると、メソッドがLog.d()3 回実行されます。なぜそれが起こるのか、またメソッドを一度だけ実行するためにリストの終わりを検出する方法は?

スニペット:

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();
        }
    }
}
4

1 に答える 1

3

boolean変数を実装して、ifステートメントが 1 回だけ実行されるようにすることができます。

boolean executed = false;

if(visibleItemCount > 0 
    && firstVisibleItem + visibleItemCount == totalItemCount 
    && !executed)
{
    executed = true;
}
于 2012-05-24T15:49:45.143 に答える