上一篇博文讲述了listView的另外2种常见适配器类.今天我来为大家讲如何动态的增加删减listView内的内容.本次所用的代码以第二篇有关listView的博文代码为基础。如果大家需要的话请到那篇博文的附件下载代码。地址http://7735447.blog.51cto.com/blog/7725447/1271626。如果大家对我的博文有什么意见或者有什么疑问可以给我留言我会尽所能的修改博文以及回答问题
创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为惠水企业提供专业的成都网站制作、做网站,惠水网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。1:动态增加内容
原理:listView显示的行布局数量是由适配器类的getcount方法返回的数量决定,这里我返回是用来装数据对象的list容器类对象的size()的方法。所有当容器的大小改变时就可以动态的改变内容
(1):我们先在布局文件里面放入2个按钮控件
(2):回到代码在让Activity类实现按键点击事件的接口,然后通过id找到2个按钮的对象并为其加上监听具体代码如下
public class MainActivity extends Activity implements OnClickListener
Button btn1 = (Button) findViewById(R.id.button1); Button btn2 = (Button) findViewById(R.id.button2); btn1.setOnClickListener(this); btn2.setOnClickListener(this);
(3):在重写接口onClick()方法里面使用使用系统传来的View参数区分哪个按钮被按下
@Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: break; case R.id.button2: break; default: break; } }
(4):在id为button1(这里button1为增加内容)里面我们往容器添加一个ItemData对象(这个类是自己写的具体见第二篇博文)然后调用适配器mAdapter对象的notifyDataSetChanged()方法通知系统我们更新了数据。具体代码如下
Itemdata itemdata = new Itemdata("title","subtitle",a[0]); mData.add(itemdata); mAdapter.notifyDataSetChanged();
(5):添加内容写好了,当我们没传数据的时候容器的size为0所以没任何内容(如下图所示)
然后我们点击增加消息按钮(这里我点击了2次);就出现了2个新内容
2:删除内容
(1):上面我们已经在按键监听方法写了增加内容的方法,接下来我们继续写删除内容代码。类似于添加代码。首先判断容器对象有没有内容,如有有的话就用remove方法把最后一行的的内容删除,然后调用监听器对象的notifyDataSetChanged()方法通知系统我们更新了数据。具体代码如下
if(mData.size() > 0) { mData.remove(mData.size()-1); mAdapter.notifyDataSetChanged(); }
这样删除代码写好了,基于上一张图的内容我们来删减一个,如下图
现在大家就可以做到动态的增加删除listView的内容了,由于代码超过2m,所以不能用附件了。大家可以到我的上传文件去下载 名字是ListView_03
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。