Android notifyDataSetChanged无法正常工作

Android notifyDataSetChanged无法正常工作,第1张

概述我有一个适配器,该适配器使用来自TreeMap的数据填充2个TextViews的ListView.当用户在ListView中添加或删除Data时,应刷新View.所以这是我的适配器:publicclassMyAdapterextendsBaseAdapter{privatefinalArrayListmData;publicMyAdapter(Map<String,String>

我有一个适配器,该适配器使用来自TreeMap的数据填充2个TextVIEws的ListVIEw.
当用户在ListVIEw中添加或删除Data时,应刷新VIEw.

所以这是我的适配器:

public class MyAdapter extends BaseAdapter {    private final ArrayList mData;    public MyAdapter(Map<String, String> map) {        mData = new ArrayList();        mData.addAll(map.entrySet());    }    @OverrIDe    public int getCount() {        return mData.size();    }    @OverrIDe    public Map.Entry<String, String> getItem(int position) {        return (Map.Entry) mData.get(position);    }    @OverrIDe    public long getItemID(int position) {        // Todo implement you own logic with ID        return 0;    }    @OverrIDe    public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {        final VIEw result;        if (convertVIEw == null) {            result = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_adapter_item, parent, false);        } else {            result = convertVIEw;        }    Map.Entry<String, String> item = getItem(position);    // Todo replace findVIEwByID by VIEwHolder    ((TextVIEw) result.findVIEwByID(androID.R.ID.text1)).setText(item.getKey());    ((TextVIEw) result.findVIEwByID(androID.R.ID.text2)).setText(item.getValue());    return result;}}

因为我想通过对话框更新视图,并且在阅读了另一个问题后,需要从UIThread调用notifyDataSetChanged(),所以我将notifyDataSetChanged()放入了Runnable中.就这个:

Runnable run = new Runnable(){        public voID run(){            Log.v("in the Runnable: ", String.valueOf(colorHashMap));            adapter.notifyDataSetChanged();        }    };

这就是如何在对话框中调用Runnable的方法:

DefaultcolorActivity.this.runOnUiThread(run);

但是,无论我尝试做什么,列表都不会更新.我需要关闭并重新打开活动以获取新列表.

解决方法:

在您的适配器中创建一个方法,例如:

 public voID updateList(){   notifyDataSetChanged()  }

并在要@R_870_6419@时调用此方法

总结

以上是内存溢出为你收集整理的Android notifyDataSetChanged无法正常工作全部内容,希望文章能够帮你解决Android notifyDataSetChanged无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存