2016-03-21 10 views
0

私はリストの最後にスクロールする際に整数値の値を増やそうとしています。リストビューの最後の項目の最後に5つの数値とスクロールがある場合、条件が満たされるまで5回までチェックしてスクロールする必要があります。ここでAndroid ListView setOnScrollListenerを操作するには?

は私のコード

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(); 
         if(num < 5) 
         { 
          num += 1; 

          Log.e("","num = "+num); 
         } 
         if(num == 5) 
         { 
          Log.e(""," Stop Scrolling!!! "); 
         } 
        } 
       } 
      }); 

あるしかし、私はその時numにListView項目の最後に最初の時間をスクロールするときに問題がforループのように一度に5まで増加され、私はしたくないですこれに。私はドン、それは同じだ場合は、「firstVisibleitem」を保存してくださいと私は最初numが1ずつインクリメントされるスクロールする場合、私は再びスクロールする場合、それは5

答えて

0

のmaxiumumまであるとして、numが2インクリメントされたいです合計をしないでください。

int X=-1; 
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; 
        //Compare X with the firstVisibleItem (if X is -1, it always go for false, if X is not -1 X will be the last first visible item 
        if(X!=firstVisibleItem) 
        { 
         if(lastInScreen == totalItemCount) 
         { 
          Toast.makeText(getApplicationContext(), "Your Last Item." + lastInScreen , Toast.LENGTH_SHORT).show(); 
          if(num < 5) 
          { 
           num += 1; 
           Log.e("","num = "+num); 
          } 
          if(num == 5) 
          { 
           Log.e(""," Stop Scrolling!!! "); 
          } 
         } 
        } 
        //Set the value of this firstVisibleItem to X 
        X=firstVisibleItem; 
       } 
      }); 
+0

ありがとうございました。 – jandroid

関連する問題