自定义listview数据源adapter时可以继承的类有哪些
答案:2 悬赏:60 手机版
解决时间 2021-03-06 05:01
- 提问者网友:我没有何以琛的痴心不悔
- 2021-03-05 18:37
自定义listview数据源adapter时可以继承的类有哪些
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-03-05 19:51
Android自定义ListView有下面三个步骤:
第一步:准备主布局文件、组件布局文件等
第二步:获取并整理数据
第三部:绑定数据,这里我们是通过自己编写Adapter类来完成的
自定义listview数据源adapter时可以继承的类有3个,分别如下:
BaseAdapter、SimpleAdapter、ArrayAdapter
1、BaseAdapter
这个是使用到最多的,也是实现功能出来的界面效果是最为明显的。
继承BaseAdapter 是需要实现4个方法的:
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
}
}getCount()用来获取数据的长度,getItem(int position)用来获取某一位置的数据,getItemId(int position)用来获取唯一标识 ,最后getView(int position, View convertView, ViewGroup parent)也是最重要的一步,是用来获取返回每一个item的数据。
2、SimpleAdapter
SimpleAdapter使用起来非常方便而且简单,使用SimpleAdapter需要先保存数据,然后保存的数据再通过与写的XML文件中的ID进行绑定即可显示在界面。
List> personList ;
//list中存放的是map 而map中每个key是属性名称,value是person中的属性值
personList = new ArrayList>();
//循环遍历list,将每一个person加入到map中
for (Person p : list) {
HashMap map=new HashMap();
map.put("ida", p.getId());
map.put("namea", p.getName());
map.put("balancea", p.getBalance());
personList.add(map);
}
//为ListView添加adapter,simpleadapter中第二个参数是List>
//new String[] { "ida", "namea", "balancea"}代表map中的键值,new int[]
{ R.id.personid, R.id.balance, R.id.name }
//代表R.layout.item,中的textView的id
view.setAdapter(new SimpleAdapter(getApplicationContext(), personList,
R.layout.item, new String[] { "ida", "namea", "balancea" },
new int[] { R.id.personid, R.id.balance, R.id.name }));进行绑定后即可显示在界面。
3、ArrayAdapter
ArrayAdapter是使用的最少的一种,因为只能用来显示一个纯文本list。
第一步:准备主布局文件、组件布局文件等
第二步:获取并整理数据
第三部:绑定数据,这里我们是通过自己编写Adapter类来完成的
自定义listview数据源adapter时可以继承的类有3个,分别如下:
BaseAdapter、SimpleAdapter、ArrayAdapter
1、BaseAdapter
这个是使用到最多的,也是实现功能出来的界面效果是最为明显的。
继承BaseAdapter 是需要实现4个方法的:
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
}
}getCount()用来获取数据的长度,getItem(int position)用来获取某一位置的数据,getItemId(int position)用来获取唯一标识 ,最后getView(int position, View convertView, ViewGroup parent)也是最重要的一步,是用来获取返回每一个item的数据。
2、SimpleAdapter
SimpleAdapter使用起来非常方便而且简单,使用SimpleAdapter需要先保存数据,然后保存的数据再通过与写的XML文件中的ID进行绑定即可显示在界面。
List
//list中存放的是map 而map中每个key是属性名称,value是person中的属性值
personList = new ArrayList
//循环遍历list,将每一个person加入到map中
for (Person p : list) {
HashMap
map.put("ida", p.getId());
map.put("namea", p.getName());
map.put("balancea", p.getBalance());
personList.add(map);
}
//为ListView添加adapter,simpleadapter中第二个参数是List
//new String[] { "ida", "namea", "balancea"}代表map中的键值,new int[]
{ R.id.personid, R.id.balance, R.id.name }
//代表R.layout.item,中的textView的id
view.setAdapter(new SimpleAdapter(getApplicationContext(), personList,
R.layout.item, new String[] { "ida", "namea", "balancea" },
new int[] { R.id.personid, R.id.balance, R.id.name }));进行绑定后即可显示在界面。
3、ArrayAdapter
ArrayAdapter是使用的最少的一种,因为只能用来显示一个纯文本list。
全部回答
- 1楼网友:蓝房子
- 2021-03-05 21:02
规范用notifyDataSetChanged(),但该 方法有时候会因为自定义的adapter里的list引用而失效,setadapter()方法不会失效;
再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯