上一篇博文讲述了listView的另外2种常见适配器类.今天我来为大家讲如何动态的增加删减listView内的内容.本次所用的代码以第二篇有关listView的博文代码为基础。如果大家需要的话请到那篇博文的附件下载代码。地址http://7735447.blog.51cto.com/blog/7725447/1271626。如果大家对我的博文有什么意见或者有什么疑问可以给我留言我会尽所能的修改博文以及回答问题
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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。