调用了notifydatasetchanged方法后 listview数据加载成功但是画面不及时更新,要滚动一下屏幕才出来刷新的数据,求高手指点

shuifengzi shuifengzi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
listview 调用了notifydatasetchanged方法后 屏幕内容须通过下拉然后再返回来才能显出变化 ,在网上找了很长时间也不知道原因,请高手指点一下啊!

数据更新没有问题,就是显示不及时,相当于屏幕要滑动到别的地方再回来 才行。点击底部加载更多的时候,往下拉会看到数据,但是那个加载更多的按钮还是在原先的位置,没有跑到底下,画面没有更新,当把这个画面上下拉一下回来后 ,才看到想要的画面,

这个是我调用刷新的代码
private HuihuaAdapter ha;

public void onRefresh() {
mHandler.postDelayed(new Runnable() {
public void run() {
list.clear();
list.addAll(getHuahui());
// Toast toast = Toast.makeText(MainActivity.this, "接收到刷新指令"
// + list.size(), Toast.LENGTH_LONG);
// toast.show();
ha.list = list;
mPullDownView.onRefreshComplete();//这里表示刷新处理完成后把上面的加载刷新界面隐藏
mPullDownView.setMore(true);//这里设置true表示还有更多加载,设置为false底部将不显示更多
ha.notifyDataSetChanged();

}
}, 1500);


-------下面这个是HuihuaAdapter .java-------------------


public class HuihuaAdapter extends BaseAdapter {
private Context context;
public ArrayList<HuiHua> list = new ArrayList<HuiHua>();

public HuihuaAdapter(Context context,ArrayList<HuiHua> list){
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
HuiHua hh = list.get(position);
H h = null;
if(view==null){


h = new H();
view = LayoutInflater.from(context).inflate(R.layout.liaotian, parent, false);
//h.pic = (ImageView)view.findViewById(R.id.l1);


h.pic = (TextView)view.findViewById(R.id.l1);
h.name = (TextView)view.findViewById(R.id.name);
h.time = (TextView)view.findViewById(R.id.time);
h.lastmsg = (TextView)view.findViewById(R.id.lastmsg);

view.setTag(h);
}else{
h = (H)view.getTag();
}


//h.pic.setImageResource(Integer.parseInt(hh.getTxPath()));
//h.pic.setText(hh.getTxPath());
h.pic.setText(hh.getTxPath());
h.name.setText(hh.getName1());
h.time.setText(hh.getLastTime());
h.lastmsg.setText(hh.getLastContent());

//更换背景图片,getEndtime返回的值为1时,表示有效,否则则是无效过期的标识背景
if (hh.getEndtime().equals("1")) {
h.pic.setBackgroundResource(R.drawable.areabg1);

} else {
h.pic.setBackgroundResource(R.drawable.areabg2);
}



return view;
}
class H{
//ImageView pic;
TextView pic;
TextView name;
TextView time;
TextView lastmsg;
}

}

万望高手指点啊!

...全文

相关推荐

自定义ListView实现下拉刷新+加载更多功能Demo

自定义ListView实现下拉刷新+加载更多功能Demo

小巫技术博客

Android ListView数据刷新与多条更新实战详解

在Android开发中,ListView作为承载大量条目展示的核心控件之一,其性能和灵活性高度依赖于适配器(Adapter)的设计与实现。虽然系统提供了如等开箱即用的实现类,但在面对复杂业务逻辑或定制化UI结构时,往往需要开发者继承并进行深度定制。本章聚焦于如何通过自定义完成高效的数据绑定,深入剖析其核心方法的作用机制、生命周期行为以及实际编码中的关键步骤,并结合常见问题提供可落地的调试策略。构建一个生产级可用的自定义需遵循严谨的编码规范与设计模式。

銀河鐵道的企鵝

浅谈Android中适配器的notifyDataSetChanged()为何有时不刷新

主要介绍了浅谈Android中适配器的notifyDataSetChanged()为何有时不刷新,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38617851

Listview实现刷新和更新一条或多条数据

Listview实现刷新和更新一条或多条数据,包括添加一条或多条数据的demo合集

天空上尉

Android——Listview不用notifydatasetchanged更新数据的方法

blog: http://blog.csdn.net/u013293125/article/details/52858396 http://www.cnblogs.com/ityizhainan/p/5976845.html

It一zhai男
评论 31
收藏 已收藏
分享
返回顶部
shuifengzi
Android 80,489 成员 91,375 内容