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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android重点笔记,安卓listview 懒加载的实现笔记

發布時間:2023/12/15 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android重点笔记,安卓listview 懒加载的实现笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、實現目的與用途

使用懶加載可降低單次訪問后臺的所獲取的數據量,從而提高獲取數據的速度,減少流量使用,加快UI界面的響應,提高用戶體驗度。

2、實現思路

兩種實現思路:

1、先設定listview每次加載的數據項數,給listview底部項添加獲取更多按鈕,通過按

鈕的監聽事件訪問后臺獲取更多數據后刷新listview。

2、先設定listview每次加載的數據項數,通過監聽listview的滑動事件,當listview滑動至底部時訪問后臺服務獲取更多數據,刷新listview顯示。

3、實現方法要點

1、布局文件中需添加listview控件

示例代碼

android:id="@+id/lv_apps"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_alignParentLeft="true"

android:cacheColorHint="#00000000"

android:fastScrollEnabled="true"?/>

2、給加載更多按鈕設置布局文件

示例代碼

android:id="@+id/loadMoreButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="更多"

android:textColor="#000000"

android:textSize="25dp"

android:gravity="center"

android:background="#00000000"

android:layout_gravity="center"

android:layout_marginTop="15dp"

android:layout_marginBottom="15dp"/>

3、加載更多按鈕的代碼實現關鍵代碼:

loadMoreView?=?getLayoutInflater().inflate(R.layout.loadmore,?null);

loadMoreButton?=?(Button)?loadMoreView

.findViewById(R.id.loadMoreButton);

lv.addFooterView(loadMoreView,null,false);//獲取加載更多按鈕并添加到listview的底部

//以下代碼監聽加載更多按鈕

loadMoreButton.setOnClickListener(new?OnClickListener()?{

@Override

public?void?onClick(View?v)?{

//?TODO?Auto-generated?method?stub

//調用后臺接口獲取數據后更新列表

}

});

//以下代碼實現滑動列表時加載

·publicvoidonScroll(AbsListView?view,intfirstVisibleItem,intvisibleItemCount,inttotalItemCount)?{

·this.visibleItemCount?=?visibleItemCount;

·visibleLastIndex?=?firstVisibleItem?+?visibleItemCount?-1;

·}

·publicvoidonScrollStateChanged(AbsListView?view,intscrollState)?{

·intitemsLastIndex?=?adapter.getCount()?-1;//數據集最后一項的索引

·intlastIndex?=?itemsLastIndex?+1;//加上底部的loadMoreView項

·if(scrollState?==?OnScrollListener.SCROLL_STATE_IDLE?&&?visibleLastIndex?==?lastIndex)?{

·//如果是自動加載,可以在這里放置異步加載數據的代碼

·Log.i("LOADMORE","loading...");

·}

·}

4、具體實現demo

1packagecom.scott.loadmore;

2

3importjava.util.ArrayList;

4

5importAndroid.app.ListActivity;

6importandroid.os.Bundle;

7importandroid.os.Handler;

8importandroid.util.Log;

9importandroid.view.View;

10importandroid.widget.AbsListView;

11importandroid.widget.AbsListView.OnScrollListener;

12importandroid.widget.Button;

13importandroid.widget.ListView;

14

15publicclassMainActivityextendsListActivityimplementsOnScrollListener?{

16privateListView?listView;

17privateintvisibleLastIndex?=0;//最后的可視項索引

18privateintvisibleItemCount;//?當前窗口可見項總數

19privateListViewAdapter?adapter;

20privateView?loadMoreView;

21privateButton?loadMoreButton;

22privateHandler?handler?=newHandler();

23

24@Override

25publicvoidonCreate(Bundle?savedInstanceState)?{

26super.onCreate(savedInstanceState);

27setContentView(R.layout.main);

28

29loadMoreView?=?getLayoutInflater().inflate(R.layout.load_more,null);

30loadMoreButton?=?(Button)?loadMoreView.findViewById(R.id.loadMoreButton);

31

32listView?=?getListView();//獲取id是list的ListView

33

34listView.addFooterView(loadMoreView);//設置列表底部視圖

35

36initAdapter();

37

38setListAdapter(adapter);//自動為id是list的ListView設置適配器

39

40listView.setOnScrollListener(this);//添加滑動監聽

41}

42

43

46privatevoidinitAdapter()?{

47ArrayList?items?=newArrayList();

48for(inti?=0;?i?<10;?i++)?{

49items.add(String.valueOf(i?+1));

50}

51adapter?=newListViewAdapter(this,?items);

52}

53

54

57@Override

58publicvoidonScroll(AbsListView?view,intfirstVisibleItem,intvisibleItemCount,inttotalItemCount)?{

59this.visibleItemCount?=?visibleItemCount;

60visibleLastIndex?=?firstVisibleItem?+?visibleItemCount?-1;

61}

62

63

66@Override

67publicvoidonScrollStateChanged(AbsListView?view,intscrollState)?{

68intitemsLastIndex?=?adapter.getCount()?-1;//數據集最后一項的索引

69intlastIndex?=?itemsLastIndex?+1;//加上底部的loadMoreView項

70if(scrollState?==?OnScrollListener.SCROLL_STATE_IDLE?&&?visibleLastIndex?==?lastIndex)?{

71//如果是自動加載,可以在這里放置異步加載數據的代碼

72Log.i("LOADMORE","loading...");

73}

74}

75

76

80publicvoidloadMore(View?view)?{

81loadMoreButton.setText("loading...");//設置按鈕文字loading

82handler.postDelayed(newRunnable()?{

83@Override

84publicvoidrun()?{

85

86loadData();

87

88adapter.notifyDataSetChanged();//數據集變化后,通知adapter

89listView.setSelection(visibleLastIndex?-?visibleItemCount?+1);//設置選中項

90

91loadMoreButton.setText("load?more");//恢復按鈕文字

92}

93},2000);

94}

95

96

99privatevoidloadData()?{

100intcount?=?adapter.getCount();

101for(inti?=?count;?i?

102adapter.addItem(String.valueOf(i?+1));

103}

104}

105}

總結

以上是生活随笔為你收集整理的Android重点笔记,安卓listview 懒加载的实现笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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