android ListView为嘛不刷新
while ((c = raf.read(bytes)) != -1) {out.write(bytes, 0, c);
localreadbytes += c;
if (localreadbytes / step != process) {
process = localreadbytes / step;
Data.list.get(position).setProcess(process);
myAdapter.notifyDataSetChanged();
}
}
那个始终是0% 直到while语句结束才100% 怎么做才能刷新或者让那个数字走起来 --------------------编程问答-------------------- 求大神指点迷津 --------------------编程问答-------------------- if (localreadbytes / step != process) {
if 改成while 试试呢。调试下吧。因为你的Data.list.get(position).setProcess(process);
中 的process 不是实时的。 --------------------编程问答-------------------- 我试过了 还是始终是0不变 --------------------编程问答-------------------- myAdapter中进度绑定的就是Data.list中的getProcess值 我设置了setProcess值
然后myAdapter.notifyDataSetChanged(); 它只进入适配器的getCount()
根本不进getView --------------------编程问答-------------------- 也进入了getItemId --------------------编程问答-------------------- 哎,因为myAdapter里面的arrayList的值没有改变,你怎么刷新myAdapter了?先改变arrarylist的值再刷新myAdapter吧,,, --------------------编程问答-------------------- 我不是改变了Data.list.get(position).setProcess(process);值吗 就是那个百分值 这不算改变吗 --------------------编程问答-------------------- 肯定不算了,要改变myAdapter里面加载的那个arrarylist的值
--------------------编程问答--------------------
那个listItems.get(position).get(FileManager.PROCESS)的值就是Data.list.get(position).getProcess值 如果我改变了Data.list.get(position).setProcess(process)
那么getProcess值也就改变了 那么listItem的值不就改变了吗
--------------------编程问答-------------------- 哎,看好,myAdapter里面的属性(context,arraylist,int,String[],int[])这个arraylist肯定add了许多hashmap<String,Object>对象对吧,你说listItems.get(position).get(FileManager.PROCESS)的值就是Data.list.get(position).getProcess值,那你要在外面申明你这个arrarylist的值就是等于Data.list,并且在刷新之前要将这个arrarlist.removeall,清空它的值,再重新赋值,,, --------------------编程问答-------------------- 好 我明天去公司试试 谢谢你的建议
补充:Java , Eclipse