日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何让listview或者gridview设置到底刷新新数据

發布時間:2024/9/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何让listview或者gridview设置到底刷新新数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天簡單的看了一下ScrollView的例子,雖然可以實現拉到底觸發監聽,但是Listview和gridview本身就自帶了下拉屬性,所以不需要ScrollView來實現。

那么在Listview和gridview中怎么把到底自動刷新數據實現呢?

在這兩個組件中,其實可以設置OnScrollListener來監聽滑動狀態。

當你實現了這個接口,那么就需要實現兩個抽象方法onScrollStateChanged和onScroll;

onScroll如下:

1 @Override 2   public void onScroll(AbsListView view, int firstVisibleItem, 3   int visibleItemCount, int totalItemCount) { 4 /** 5 * firstVisibleItem 表示在當前屏幕顯示的第一個listItem在整個listView里面的位置(下標從0開始) 6 * visibleItemCount表示在現時屏幕可以見到的ListItem(部分顯示的ListItem也算)總數 7 * totalItemCount表示ListView的ListItem總數 8 * listView.getLastVisiblePosition()表示在現時屏幕最后一個ListItem 9 * (最后ListItem要完全顯示出來才算)在整個ListView的位置(下標從0開始) 10 */ 11 }

onScrollStateChanged如下:

1 @Override 2 public void onScrollStateChanged(AbsListView view, int scrollState) { 3 /** 4 *scrollState有三種狀態,分別是SCROLL_STATE_IDLE、SCROLL_STATE_TOUCH_SCROLL、SCROLL_STATE_FLING 5 *SCROLL_STATE_IDLE是當屏幕停止滾動時 6 *SCROLL_STATE_TOUCH_SCROLL是當用戶在以觸屏方式滾動屏幕并且手指仍然還在屏幕上時(The user is scrolling using touch, and their finger is still on the screen) 7 *SCROLL_STATE_FLING是當用戶由于之前劃動屏幕并抬起手指,屏幕產生慣性滑動時(The user had previously been scrolling using touch and had performed a fling) 8 */ 9 } 10 }

那么我們其實使用onScrollStateChanged就可以觸發了:

@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {if (view.getLastVisiblePosition() == view.getCount() - 1) {
              //*******這段代碼是我自己的數據進行添加****************Map
<String,Object> map1 = new HashMap<String,Object>();map1.put("title", "abc");map1.put("img", R.drawable.ic_launcher);list.add(map1);//**************************BaseAdapter ba = (BaseAdapter)gridview.getAdapter();ba.notifyDataSetChanged();}}}

上面的代碼解釋一下:

1、scrollState 是滑動的狀態,SCROLL_STATE_IDLE表示屏幕停止滑動的那一刻;

2、view.getLastVisiblePosition()獲取的是當前整個列表(無論你是listview還是gridview)所有item子控件的最后一個組件,并且是從0開始索引;

3、view.getCount()表示的是當前的組件的數量,是從1開始查的(只要你會查數就行),所以判斷的時候要-1;

4、最后還是要獲取的列表對應的適配器(Adapter),然后notifyDataSetChanged刷新列表數據(好處是不需要刷新整個Activity)。

那么這樣就可以實現到底自動刷新效果了。(四海小森純手打^_^)

轉載于:https://www.cnblogs.com/ccshxt/p/5231624.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的如何让listview或者gridview设置到底刷新新数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。