优秀的手机游戏下载!
首页 Android

Android

发布时间:2024-06-05 12:00:02 编辑:手游帝 浏览:179

通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。

首先,写一个xml文件,moredata.xml,该文件即定义了放在listview底部的视图:

&lt?xml version="1.0" encoding="utf-8"?&gt

&ltLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" &gt

&ltButton

android:id="@+id/bt_load"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="加载更多数据" /&gt

&ltProgressBar

android:id="@+id/pg"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:visibility="gone"

/&gt

&lt/LinearLayout&gt

可以看到是一个按钮和一个进度条。因为只做一个演示,这里简单处理,通过设置控件的visibility,未加载时显示按钮,加载时就显示进度条。

写一个item.xml,大家应该很熟悉了。用来定义listview的每个item的视图。

&lt?xml version="1.0" encoding="utf-8"?&gt

&ltLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" &gt

&ltTextView

android:id="@+id/tv_title"

android:textSize="20sp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="5dp"

/&gt

&ltTextView

android:textSize="12sp"

android:id="@+id/tv_content"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="5dp"

/&gt

&lt/LinearLayout&gt

main.xml就不贴了,整个主界面就一个listview。

直接先看下Activity的代码,在里面实现分页效果。

package com.notice.moredate

import java.util.ArrayList

import java.util.HashMap

import android.app.Activity

import android.os.Bundle

import android.os.Handler

import android.view.View

import android.view.View.OnClickListener

import android.widget.AbsListView

import android.widget.AbsListView.OnScrollListener

import android.widget.Button

import android.widget.ListView

import android.widget.ProgressBar

import android.widget.SimpleAdapter

import android.widget.Toast

public class MoreDateListActivity extends Activity implements OnScrollListener {

// ListView的Adapter

private SimpleAdapter mSimpleAdapter

private ListView lv

private Button bt

private ProgressBar pg

private ArrayList&ltHashMap&ltString,String&gt&gtlist

// ListView底部View

private View moreView

private Handler handler

// 设置一个最大的数据条数,超过即不再加载

private int MaxDateNum

// 最后可见条目的索引

private int lastVisibleIndex

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.main)

MaxDateNum = 22// 设置最大数据条数

lv = (ListView) findViewById(R.id.lv)

// 实例化底部布局

moreView = getLayoutInflater().inflate(R.layout.moredate, null)

bt = (Button) moreView.findViewById(R.id.bt_load)

pg = (ProgressBar) moreView.findViewById(R.id.pg)

handler = new Handler()

// 用map来装载数据,初始化10条数据

list = new ArrayList&ltHashMap&ltString,String&gt&gt()

for (int i = 0i &lt10i++) {

HashMap&ltString, String&gtmap = new HashMap&ltString, String&gt()

map.put("ItemTitle", "第" + i + "行标题")

map.put("ItemText", "第" + i + "行内容")

list.add(map)

}

// 实例化SimpleAdapter

mSimpleAdapter = new SimpleAdapter(this, list, R.layout.item,

new String[] { "ItemTitle", "ItemText" },

new int[] { R.id.tv_title, R.id.tv_content })

// 加上底部View,注意要放在setAdapter方法前

lv.addFooterView(moreView)

lv.setAdapter(mSimpleAdapter)

// 绑定监听器

lv.setOnScrollListener(this)

bt.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

pg.setVisibility(View.VISIBLE)// 将进度条可见

bt.setVisibility(View.GONE)// 按钮不可见

handler.postDelayed(new Runnable() {

@Override

public void run() {

loadMoreDate()// 加载更多数据

bt.setVisibility(View.VISIBLE)

pg.setVisibility(View.GONE)

mSimpleAdapter.notifyDataSetChanged()// 通知listView刷新数据

}

}, 2000)

}

})

}

private void loadMoreDate() {

int count = mSimpleAdapter.getCount()

if (count + 5 &ltMaxDateNum) {

// 每次加载5条

for (int i = counti &ltcount + 5i++) {

HashMap&ltString, String&gtmap = new HashMap&ltString, String&gt()

map.put("ItemTitle", "新增第" + i + "行标题")

map.put("ItemText", "新增第" + i + "行内容")

list.add(map)

}

} else {

// 数据已经不足5条

for (int i = counti &ltMaxDateNumi++) {

HashMap&ltString, String&gtmap = new HashMap&ltString, String&gt()

map.put("ItemTitle", "新增第" + i + "行标题")

map.put("ItemText", "新增第" + i + "行内容")

list.add(map)

}

Android

}

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

// 计算最后可见条目的索引

lastVisibleIndex = firstVisibleItem + visibleItemCount - 1

// 所有的条目已经和最大条数相等,则移除底部的View

if (totalItemCount == MaxDateNum + 1) {

lv.removeFooterView(moreView)

Toast.makeText(this, "数据全部加载完成,没有更多数据!", Toast.LENGTH_LONG).show()

}

}

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

// 滑到底部后自动加载,判断listview已经停止滚动并且最后可视的条目等于adapter的条目

if (scrollState == OnScrollListener.SCROLL_STATE_IDLE

&amp&amplastVisibleIndex == mSimpleAdapter.getCount()) {

// 当滑到底部时自动加载

// pg.setVisibility(View.VISIBLE)

// bt.setVisibility(View.GONE)

// handler.postDelayed(new Runnable() {

//

// @Override

// public void run() {

// loadMoreDate()

// bt.setVisibility(View.VISIBLE)

// pg.setVisibility(View.GONE)

// mSimpleAdapter.notifyDataSetChanged()

// }

//

// }, 2000)

}

}

}

asp.net listview分页问题。

总结了以下几种分列显示二维数组的方法,和大家分享。

一、在listview中分列显示distionary的泛型类的内容。

Dictionary dic = new Dictionary()

dic.Add(1, "刘备")

dic.Add(2, "张飞")

dic.Add(3, "赵去")

dic.Add(4, "关羽")

dic.Add(5, "姜维")

listView1.Clear()//清空先前内容

listView1.View = View.Details//分列显示

listView1.Columns.Add("编号")

listView1.Columns.Add("姓名")

foreach (var ee in dic)

{

ListViewItem gg = new ListViewItem(new string[]{ee.Key.ToString(),ee.Value})//这是至关重要的一点。

listView1.Items.Add(gg)

}

二、在listview中分列显示二维数组

(一)我们先建立一个二维数组

listView1.View = View.Details

listView1.Columns.Add("姓名")

listView1.Columns.Add("语文")

listView1.Columns.Add("数学")

listView1.Columns.Add("科学")

listView1.Columns.Add("英语")

string[,] chengji = new string[4, 5]

chengji[0, 0] = "小王"

chengji[0, 1] = "90"

chengji[0, 2] = "98"

chengji[0, 3] = "88"

chengji[0, 4] = "92"

chengji[1, 0] = "小李"

chengji[1, 1] = "92"

chengji[1, 2] = "94"

chengji[1, 3] = "98"

chengji[1, 4] = "93"

chengji[2, 0] = "小黄"

chengji[2, 1] = "91"

chengji[2, 2] = "92"

chengji[2, 3] = "93"

chengji[2, 4] = "94"

chengji[3, 0] = "小张"

chengji[3, 1] = "95"

chengji[3, 2] = "94"

chengji[3, 3] = "93"

chengji[3, 4] = "92"

(二)下面是几种分列显示二维数组的几种方法。

1、第一种分列显示方法:

listView1.Clear()

for (int i = 0i &ltchengji.GetLength(0)i++)

{

ListViewItem bb = new ListViewItem(new string[] { chengji[i, 0], chengji[i, 1], chengji[i, 2], chengji[i, 3], chengji[i, 4] })

listView1.Items.Add(bb)

}

2、第二种分列显示方法:

上面的listview分列显示还可以用下面的方法。

listView1.Clear()

ListViewItem cj

for (int i = 0i &ltchengji.GetLength(0)i++)

{

cj = new ListViewItem(chengji[i,0])

cj.SubItems.Add(chengji[i, 1])

cj.SubItems.Add(chengji[i,2])

cj.SubItems.Add(chengji[i, 3])

cj.SubItems.Add(chengji[i, 4])

listView1.Items.Add(cj)

3、第三种分列显示方法:

如果我们把二维数组转化为一维数组(即结合上面两种方法)还可以用下面的方法分列显示。

listView1.Clear()

ListViewItem cjj

string[] sstr = new string[chengji.GetLength(1)]

for (int i = 0i &ltchengji.GetLength(0)i++)

{

for (int j = 0j &ltchengji.GetLength(1)j++)

{

sstr[j] = chengji[i, j]

}

cjj = new ListViewItem(sstr)

listView1.Items.Add(cjj)

}

话不多说直接上代码,可以的话望采纳

这是HTML的代码,.NET自带的分页,分页考过去可以直接用,DIV可以不要

 &ltdiv  &gt

                                                &ltdiv  &gt

                                                    &ltuc1:PageControl ID="Page2" runat="server" ShowFirstLast="true" ShowPrevNext="true"

                                                        FirstPageText="首 页" LastPageText="末 页" PrevPageText="上一页" NextPageText="下一页"

                                                        AlwaysShow="true" ShowCustomInfoSec="left" NumericButtonCount="5" PagingButtonSpacing="25px"

                                                        SubmitButtonClass="btn blue" SubmitButtonStyle="margin-left:10pxfont-size:13pxwidth:30pxvertical-align:middle text-align:centerheight: 23pxpadding:0"

                                                        CustomInfoHTML="当前 %CurrentPageIndex% 页 共 %PageCount% 页  共 %CountNum% 条数据" CustomInfoClass="label" /&gt

                                                &lt/div&gt

                                            &lt/div&gt

后台代码

            Page2._urlPageIndexName = "page"

            Page2.PageSize = PageSize//设置每页显示的项数

            //查询数据并返回数据条数,页数

            rptList.DataSource = ADBLL.GetPageInstance(CurrentPage, PageSize)

            Page2.PageCount = PageCount//总页数

            Page2.CountNum = CountNum//数据条数

            rptList.DataBind()//绑定数据到list显示

这样就搞定了。

以上就是关于Android listview怎么实现滚动分页全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。首先,写一个xml文件,mo…
查看详情
通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。首先,写一个xml文件,mo…
查看详情
通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。首先,写一个xml文件,mo…
查看详情
相关资讯
猜你喜欢