如何强制列表视图刷新其视图?

时间:2012-08-10 03:36:20

标签: android android-layout

实际上我尝试过以下方法:

checkbox_visable=true;
fileList.notifyDataSetChanged();
listview.invalidate();

但是它无法回忆起我指定的适配器对每一行的getview()方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    convertView=super.getView(position, convertView, parent);
    CheckBox cb=(CheckBox) convertView.findViewById(R.id.item_cb);
    if(checkbox_visable)
    cb.setVisibility(View.INVISIBLE);
    return convertView;
}

那么,我想动态更改ListView的用户界面吗?

2 个答案:

答案 0 :(得分:1)

当您向下滚动列表视图时,

自动调用getview。

您的观点将自动刷新

在您的代码中添加else条件,如果条件为false,则设置复选框的状态

if(checkbox_visable)
            cb.setVisibility(View.INVISIBLE);
else
//what you want the state of the checkbox to be

我认为这会奏效。

答案 1 :(得分:0)

好的,然后试试这个

listview.setAdapter(new FileList(this, R.layout.row, your data));

And in your FileList class make the construstor of your adapter like.  

public FileList(Context context, int textViewResourceId,   String[] objects) {
            super(context, textViewResourceId, objects);
        }

希望这会有所帮助