2

我有这门课

public class AdapterListView extends BaseAdapter { }

如果我不实现某些方法,例如 getCount(),则会出现错误

错误是:

AdapterListView 类型必须实现继承的抽象方法 Adapter.getCount()

该类BaseAdapter实现ListAdapterSpinnerAdapter。这些接口继承了Adapter接口的方法,但是这个接口有以下抽象方法:

  • 获取计数()
  • 获取项目 ()
  • 获取项目标识 ()
  • 获取项目视图类型 ()
  • 获取视图()
  • 获取视图类型计数 ()
  • hasStableIds ()
  • 是空的 ()
  • registerDataSetObserver ()
  • unregisterDataSetObserver ()

有关详细信息,请参阅适配器接口。

但我只是实现了getCount()、getItem()、getItemId()、getView()。并且编译器不会给出这个错误。为什么会发生这种情况?

4

3 回答 3

2

您不需要实现这些方法的原因是它们已经在抽象类中实现了BaseAdapter

请参阅源代码链接:BaseAdapter

类类型abstract可以实现一些方法,并为扩展它的类保留一些方法。

问候。

于 2012-10-29T01:03:54.937 回答
0

如果你扩展一个类,你不需要实现这个类的所有方法。某些方法必须至少像您的情况一样声明 getCount()、getId() 等,如果需要,您也可以覆盖它们。在 Eclipse 中,当您悬停类名并单击它时,您可以看到必须声明哪些方法。

于 2012-10-29T00:43:20.000 回答
0

不要更改这些方法的名称

获取计数();

获取项目();

getItemId();

获取项目视图类型();

获取视图();

getViewTypeCount();

于 2016-12-24T20:40:30.900 回答