【问题标题】:Custom ArrayAdapter with no List type parameter没有列表类型参数的自定义 ArrayAdapter
【发布时间】:2014-10-05 02:39:59
【问题描述】:

我想创建我自己的 ArrayAdapter,只调用只有 2 个参数、上下文和资源布局 ID 的超级构造函数。 问题是,如果我使用该构造函数,则永远不会调用 getView 方法,但是如果我使用其他构造函数,如果我传递一个 List 对象参数或数组,它将调用我的 getView 方法。 我试图覆盖 isEmpty 方法,但仍然没有,也没有调用此方法。

有没有办法确保只使用带有 2 个参数(上下文和资源布局 ID)的超级构造函数来调用 getView 方法?

谢谢。

【问题讨论】:

  • 请贴一些示例代码
  • 添加您的代码。您尝试了什么?
  • 在 ArrayAdapter 构造函数方法中处理列表的大小,如果不这样做,请将列表传递给未调用的构造函数 getView
  • 那么,如果你需要传递一个数组或一个 List 对象以便他可以确定列表视图的大小,那么你只能传递上下文和资源布局 id 有什么意义呢?有什么办法可以绕过这个吗?

标签: java android listview android-arrayadapter


【解决方案1】:

由于在使用双参数构造函数时没有将 List 传递给超类,因此您需要重写 getCount() 方法以返回 List 的大小。否则,AdapterView 会认为有零个项目,并且不会尝试调用getView()。例如:

@Override
public int getCount()
{
    return list.size();
}

【讨论】:

  • 谢谢!这正是我一直在寻找的,它现在对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多