我有一个列表和相应的适配器。在列表中我有20个项目存储在一个数组中。发生了一个事件,我的列表大小减少到10个项目(现在数组中有10个项目)。我打电话给notifyDataSetChanged
刷新清单。但我得到空指针异常。我认为这是因为这个方法
public View getView(int position, View convertView, ViewGroup parent)
正在调用20次而我只有10个项目,因此数组[position]在getView方法中的position = 11处返回null。我在思考正确的方向吗?我想了解更多关于getView的信息,但是android文档还不足以让我理解这些东西。
答案 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个项目。