android点击按钮更新listview?

界面是这样的,我的listview是下面的ListViewlistsource=(ListView)findViewById(R.id.listsource);lists... 界面是这样的,我的listview是下面的
ListView listsource = (ListView) findViewById(R.id.listsource);
listsource.setAdapter(new ArrayAdapter<String>(this, R.layout.item,sour));
我想实现点击按钮刷新ListView ,那按钮响应函数里 该怎么写?
展开
 我来答
bj051055
2014-04-01 · TA获得超过135个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:148万
展开全部
用个变量保存你的adapter

按钮监听器里写adapter.notifyDataSetChanged();
追问
listsource.setAdapter中的参数是个ListAdapter类型的?
追答
你参数里new的不是ArrayAdapter嘛 ArrayAdapter继承于BaseAdapter,BaseAdapter实现了ListAdapter
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapppjYivQSRgU0hR
推荐于2018-03-22 · 超过15用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:12.2万
展开全部
两个思路:
1、使用adapter调用notifyDataSetChanged();这个方法的目的就是通知系统,这个adapter绑定的数据发生改变,所有使用这个adapter的listview重新运行adapter中的getView()方法。

所以你的上边的代码要先留出引用如:
ListView listsource = (ListView) findViewById(R.id.listsource);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, R.layout.item,sour);
listsource.setAdapter(adapter);
然后在button点击事件里面调用adapter.notifyDataSetChanged();需要注意的是,如果你这个adapter所使用的数据引用(比如sour被重新new了)改变了,那么adapter.notifyDataSetChanged()调用后可能还是使用之前的那个数据引用地址,如果如此就不会有刷新效果。
2、直接给listveiw设置一个新的adapter,在button点击事件之中再运行一次listsource.setAdapter(new ArrayAdapter<String>(this, R.layout.item,sour));注意这个构造方法里面使用的是新的数据引用(sour是新new的)。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式