2012-05-24 58 views
1

在此代碼片段中,當滾動到達列表的末尾時,方法Log.d()執行3次。爲什麼會發生這種情況,以及如何檢測列表的末尾以僅執行一次方法?onScroll()問題(執行三次)

段:

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

你'if'語句將執行多次visibleItemCount'的'數量。你看到多少物品,3? – slybloty

+0

是的,3.那麼,如何解決它只能做一次? – Stas

回答

2

你可以實現一個boolean變量,以確保只有一次if語句的執行。

boolean executed = false; 

if(visibleItemCount > 0 
    && firstVisibleItem + visibleItemCount == totalItemCount 
    && !executed) 
{ 
    executed = true; 
} 
+1

正如我的老師所說 - 「Briliant!」 :) – Stas