当前位置:首页 » 安卓系统 » android漂亮的listview

android漂亮的listview

发布时间: 2025-03-14 13:40:26

‘壹’ android中listview的下拉刷新上拉加载是怎么实现的

这是两个分开的部分。如果你是新手,先一个一个来。

我只能跟你说一下思路,具体的东西你在网上查查,不行再问我,新手的话慢慢来。

  1. 下拉刷新,获取listview的下拉时间显示header,然后调用更新数据的接口就可以了。

  2. 上啦加载,是分页获取数据,获取listview的是否拉到最底,如果拉倒最底,获取数据,让后list的数据添加获取的数据,更新adapter就可以了。


‘贰’ android中listview怎么用

创建继承BaseAdapter并实现其抽象方法的类MyListViewAdapter
说明
下面的讲解中,只创建自定义的适配器类,如何使用请参考android中常用控件的使用之ListView
1.创建类MyListViewAdapter
创建类MyListViewAdapter,该类继承BaseAdapter,并实现其抽象方法:
1
2
3
4

int getCount();
Object getItem(int position);
long getItemId(int position);
View getView(int position,View convertView,ViewGroup parent);

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行
getItem需要返回参数position位置的数据
getItemId返回position就行了
2.给MyListViewAdapter类添加成员变量和构造方法
两个成员变量
1
2

List<String> list;
Context context;

list表示要显示的数据,context变量在生成View对象时需要用到
构造方法:构造方法是为了给两个成员变量赋值
1
2
3
4

public MyListViewAdapter(List<String> list , Context context) {
this.list = list;
this.context = context;
}

3.给getCount,getItem,getItemId方法添加代码
getCount需要返回有多少个item,也就是说最会在listview中展示这么多行,所以返回list.size
getItem需要返回参数position位置的数据,也就是list中第position项的值list.get(position)
getItemId返回position就行了
1
2
3
4
5
6
7
8
9
10
11
12
13
14

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

4.给getView方法添加代码
getView方法是返回位置为position的View对象,第二个参数convertView考虑到资源重用问题,在上下滑动的过程中,需要显示某项的时候才会调用getView方法,而如果有某项被隐藏不显示,就会把不显示那一行的View作为convertView参数传入,如果没有某项被隐藏,convertView值为null。可以通过下面代码中的if(convertView!=null)中的输出来看哪一行被隐藏了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("调用getView方法,显示position="+position+"项");
if(convertView!=null){
TextView t = (TextView) convertView.findViewById(R.id.firstTextView);
System.out.println(t.getText());
}else{
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.item_mylistviewadapter, null);
}
TextView t = (TextView)(convertView.findViewById(R.id.firstTextView));
t.setText(list.get(position));
if(position%2==0)
{
t.setBackgroundColor(Color.WHITE);

}
else{
t.setBackgroundColor(Color.GRAY);
}
return convertView;
}

补充:通过xml生成View对象
通过Context对象生成一个LayoutInflater对象
调用LayoutInflater对象的inflate方法生成控件对象,inflate方法的第一个参数为xml文件,第二个参数一般为null。返回值为该xml文件最外层的标签对象。
1
2

LayoutInflater layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout convertView =(LinearLayout)layoutInflater.inflate(R.layout.item_mylistvie

源代码下载
pan..com/s/1ntuQDdv

热点内容
视频服务器搭建海康 发布:2025-04-30 23:50:29 浏览:95
xp共享怎么设置密码 发布:2025-04-30 23:50:24 浏览:158
租用电脑主机搭建服务器 发布:2025-04-30 23:28:06 浏览:733
php子类调用父类方法 发布:2025-04-30 23:11:55 浏览:678
存档加密id 发布:2025-04-30 22:20:50 浏览:747
mac搭建php环境 发布:2025-04-30 21:58:13 浏览:141
雅迪电动车配置有哪些 发布:2025-04-30 21:38:27 浏览:160
为什么用文件存储取代mysql 发布:2025-04-30 21:17:26 浏览:614
我的世界免费服务器ip 发布:2025-04-30 20:41:26 浏览:775
华为云相册在哪里找安卓11 发布:2025-04-30 20:19:59 浏览:273