我怎样才能刷新更改后的名单? [英] How can I refresh the list after changes?

查看:154
本文介绍了我怎样才能刷新更改后的名单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用我的ArrayAdapter扩大getView方法。
我改变复选框,但ListView控件不刷新

我的源

  @覆盖
    公共查看getView(INT位置,查看convertView,父母的ViewGroup){        //星球显示
        UrlItem urlItem =(UrlItem)this.getItem(位置);
        ViewHolder viewHolder = NULL;        如果(convertView == NULL){            convertView = inflater.inflate(R.layout.database_table_item,NULL);
            viewHolder =新ViewHolder();
            viewHolder.checkbox =(复选框)convertView
                    .findViewById(R.id.checkBox1);            viewHolder.checkbox
                    .setOnCheckedChangeListener(新CompoundButton.OnCheckedChangeListener(){                        公共无效onCheckedChanged(CompoundButton buttonView,
                                布尔器isChecked){                            INT为getPosition =(整数)buttonView.getTag();
                            DatabaseTable.setPosition(为getPosition);
                            的for(int i = 0; I< UrlItems.size();我++){                                UrlItems.get(ⅰ).setUse(假);                            }                            UrlItems.get(为getPosition).setUse(器isChecked);
                        }
                    });

我怎样才能刷新更改后的名单??

在清单中设置您的信息

 <活动
            机器人:DatabaseTableNAME =
            机器人:标签=database_table机器人:windowSoftInputMode =adjustPan>

查看链接升级使用按钮全选我有相同的想法,但没有键全选

http://pastebin.com/PgNeDnXq


解决方案

  adapter.notifyDataSetChanged(); //通知您的数据已更新适配器

注意:如果您得到任何错误,与上面的线,你可以试试下面的code(其中mListView是我的ListView对象的名称)

 ((BaseAdapter)mListView.getAdapter())notifyDataSetChanged()。

另一种方式是,使得它重绘形式更新后的数据再次设置为无效列表

  mListView =(ListView控件)findViewById(R.id.MyListView);
mListView.invalidate();

I use my ArrayAdapter expanded getView method. I change CheckBox but the ListView does not refresh

my source

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        // Planet to display
        UrlItem urlItem = (UrlItem) this.getItem(position);
        ViewHolder viewHolder = null;

        if (convertView == null) {

            convertView = inflater.inflate(R.layout.database_table_item, null);
            viewHolder = new ViewHolder();
            viewHolder.checkbox = (CheckBox) convertView
                    .findViewById(R.id.checkBox1);



            viewHolder.checkbox
                    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                        public void onCheckedChanged(CompoundButton buttonView,
                                boolean isChecked) {

                            int getPosition = (Integer) buttonView.getTag();
                            DatabaseTable.setPosition(getPosition);


                            for (int i = 0; i < UrlItems.size(); i ++ ) {

                                UrlItems.get(i).setUse(false);

                            }

                            UrlItems.get(getPosition).setUse(isChecked);


                        }
                    });

How can I refresh the list after changes ??

for your information in the manifest set

<activity
            android:name=".DatabaseTable"
            android:label="database_table" android:windowSoftInputMode="adjustPan" >

See the link for the upgrade using the button "selectAll" I have exact same idea but without the button selectAll

http://pastebin.com/PgNeDnXq

解决方案

adapter.notifyDataSetChanged(); // to notify the adapter that your data has been updated

Note: If you get any errors with the above line, you could try the following code (where mListView is the name of my ListView object)

((BaseAdapter) mListView.getAdapter()).notifyDataSetChanged(); 

Another way would be to invalidate the List so that it is redrawn form the updated data set once again.

mListView=(ListView) findViewById(R.id.MyListView);
mListView.invalidate();

这篇关于我怎样才能刷新更改后的名单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆