国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

ListView 分頁加載的更新實例介紹

2020-02-21 17:38:41
字體:
來源:轉載
供稿:網友

  ListView是android中最常用的控件之一,以下是小編整理的一些ListView 分頁加載的更新實例介紹,感興趣的朋友跟小編一起來了解一下吧!

  在實際運用中往往會遇到一次性加載全部數據過多,需要分頁加載增加程序運行效率!

  本demo是將更新的監聽放在listview的foot中,通過底部按鈕點擊觸發或者通過滑動事件監聽,當滑動到列表最底部的時候觸發。

  有圖有真像:

  列表初始狀態

  觸發加載

  加載后

  部分代碼:

  MainActivity

  復制代碼 代碼如下:

  private void initActivity() {

  // TODO Auto-generated method stub

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

  loadmore_btn = (Button) loadMoreView.findViewById(R.id.loadmore_btn);

  loadmore_btn.setOnClickListener(new OnClickListener() {

  @Override

  public void onClick(View v) {

  // TODO Auto-generated method stub

  doUpdate();

  }

  });

  listView = (ListView) findViewById(R.id.listView);

  listView.addFooterView(loadMoreView);

  initAdapter();

  listView.setAdapter(adapter);

  listView.setOnScrollListener(new OnScrollListener() {

  @Override

  public void onScrollStateChanged(AbsListView view, int scrollState) {

  // TODO Auto-generated method stub

  int itemsLastIndex = adapter.getCount() - 1;

  int lastIndex = itemsLastIndex + 1;

  if (scrollState == OnScrollListener.SCROLL_STATE_IDLE

  && visibleLast == lastIndex) {

  // 可在這添加滑到列表底的時候異步自動加載

  // doUpdate();

  }

  }

  @Override

  public void onScroll(AbsListView view, int firstVisibleItem,

  int visibleItemCount, int totalItemCount) {

  // TODO Auto-generated method stub

  visibleCount = visibleItemCount;

  visibleLast = firstVisibleItem + visibleItemCount - 1;

  }

  });

  }

  protected void doUpdate() {

  // TODO Auto-generated method stub

  loadmore_btn.setText("loading ...");

  handler.postDelayed(new Runnable() {

  @Override

  public void run() {

  // TODO Auto-generated method stub

  loadData();

  adapter.notifyDataSetChanged();// 通知adapter數據變化

  listView.setSelection(visibleLast - visibleCount + 1);

  loadmore_btn.setText("Load More");

  }

  }, 2000);

  }

  private void loadData() {

  // TODO Auto-generated method stub

  int count = adapter.getCount();

  for (int i = count; i

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

  }

  }

  private void initAdapter() {

  // TODO Auto-generated method stub

  List items = new ArrayList();

  for (int i = 0; i

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

  }

  adapter = new ListAdapter(this, items);

  }

  @Override

  public boolean onCreateOptionsMenu(Menu menu) {

  // Inflate the menu; this adds items to the action bar if it is present.

  getMenuInflater().inflate(R.menu.activity_main, menu);

  return true;

  }

  ListAdapter

  復制代碼 代碼如下:

  public ListAdapter(Context context, List items) {

  this.items = items;

  this.inflater = (LayoutInflater) context

  .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

  }

  @Override

  public int getCount() {

  // TODO Auto-generated method stub

  return items.size();

  }

  @Override

  public Object getItem(int position) {

  // TODO Auto-generated method stub

  return items.get(position);

  }

  @Override

  public long getItemId(int position) {

  // TODO Auto-generated method stub

  return position;

  }

  @Override

  public View getView(int position, View convertView, ViewGroup parent) {

  // TODO Auto-generated method stub

  if (convertView == null) {

  convertView = inflater.inflate(R.layout.list_item, null);

  }

  TextView textView = (TextView) convertView

  .findViewById(R.id.list_item_text);

  textView.setText(items.get(position));

  return convertView;

  }

  /**

  * 添加列表項

  * @param item

  */

  public void addItem(String item){

  items.add(item);

  }

  提醒一下:要下載android-support-v4.jar 這個第三方的jar包哦! 這里就不提供下載了!

? ? ? ?以上所述就是ListView 分頁加載的更新實例介紹的介紹,希望大家能夠喜歡,更多內容請繼續關注武林技術頻道網站!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽源市| 福鼎市| 天门市| 安福县| 安西县| 乌兰察布市| 金乡县| 承德市| 鄂托克旗| 原阳县| 东兴市| 社会| 庐江县| 五河县| 汨罗市| 江口县| 宿松县| 梅河口市| 若尔盖县| 玛多县| 漠河县| 塘沽区| 济源市| 兴安县| 开鲁县| 丹寨县| 阿合奇县| 邹城市| 滨海县| 新泰市| 南通市| 永嘉县| 桐乡市| 金塔县| 铜川市| 高唐县| 阜宁县| 丹棱县| 信阳市| 昭觉县| 樟树市|