android listView动态变化

时间:2011-08-02 09:13:07

标签: android listview

我有一个列表和相应的适配器。在列表中我有20个项目存储在一个数组中。发生了一个事件,我的列表大小减少到10个项目(现在数组中有10个项目)。我打电话给notifyDataSetChanged刷新清单。但我得到空指针异常。我认为这是因为这个方法

public View getView(int position, View convertView, ViewGroup parent)

正在调用20次而我只有10个项目,因此数组[position]在getView方法中的position = 11处返回null。我在思考正确的方向吗?我想了解更多关于getView的信息,但是android文档还不足以让我理解这些东西。

3 个答案:

答案 0 :(得分:2)

你应该修复

public int getCount () 

返回正确的点数

答案 1 :(得分:0)

你可以使用handler来动态更改列表视图

private final Handler mHandler=new Handler() 
{       
    @Override
    public void handleMessage(Message msg) {
        list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings));
        list.invalidate();
        return;
    }
};

如果你想要使用呼叫处理程序

handler.sendemptymessage(0);

答案 2 :(得分:0)

你应该在适配器类中重置数组列表(即在调用notifyDatasetChanged()时,数组列表应该有10个项目。