未调用ArrayAdapter getView

时间:2015-05-14 13:00:50

标签: android android-listview android-arrayadapter android-4.0-ice-cream-sandwich

我有一个自定义ArrayAdapter,即使调用了我的getCount方法,(并且我返回了我的数组计数,在示例中,该计数是181)我的getView未被调用。这从今天开始,它似乎是随机发生的。有时,它会被调用并完美显示。有时,在加载数据后,它只是保持空白。以下是一些事项:

  • 我在getCount中放了一个断点,它返回一个正数。
  • 我已将列表的背景颜色设置为某种颜色,并且它显示得很完美,用它的背景颜色填充屏幕。所以没有布局问题。
  • 我在setAdapter方法中设置了一个断点,它在UI线程上正常调用。 (如果没有调用,getCount无论如何都不会被调用)

有趣的是,并非总是会发生这种情况。几分钟前我已经重新启动了我的设备(Galaxy S3,如果有帮助)并且问题消失了,但是现在,当我写这些问题时,它又回来了。我已经检查了我的网络连接,没有问题(无论如何我都成功获得了一系列项目)。我已经看到很多关于这个具体问题的问题,但没有一个能解决我的问题。如果有帮助,我会参加ICS。

这是我的构造函数:

protected List<Map<String, Object>> objects;
protected Map<String, Object> user;

public FeedAdapter(Context context, List<Map<String, Object>> objects, Map<String, Object> attachedUser) {
    super(context, 0, objects);
    this.objects = objects;
    this.user = attachedUser;
}

我在数据加载处理程序的UI线程上显式调用它(dataSource对许多项有效):

 dataSource = (ArrayList<Map<String, Object>>) task.getResult();
 FeedAdapter adapter = new FeedAdapter(getActivity(), dataSource, getUser());
 ListView list = (ListView) rootView.findViewById(R.id.listView);
 list.setOnItemClickListener(self);
 list.setAdapter(adapter);

什么可能导致问题?

2 个答案:

答案 0 :(得分:1)

首先,请检查你在getCount()中的返回,确保你已经在getCount中返回了你的数据(List,ArrayList的大小)

其次,确保任何其他视图TextView,View可能与ListView不重叠,如果不是,则getView无法将数据呈现或绑定到ListView的ListContent.So在CustomAdapter中有数据(List,ArrayList)和这就是没有调用getView()的原因。

我希望这会帮助你工作。

答案 1 :(得分:-1)

更改布局(ListView)高度,宽度以匹配父级。