java语法问题
这段代码是在一行中实例化SectionAdapter对象并重写getHeaderView吗java语法问题,java,android,Java,Android,这段代码是在一行中实例化SectionAdapter对象并重写getHeaderView吗 SectionedAdapter tagSectionedAdapter=new SectionedAdapter() { protected View getHeaderView(String caption, int index, View convertView,
SectionedAdapter tagSectionedAdapter=new SectionedAdapter() {
protected View getHeaderView(String caption, int index,
View convertView,
ViewGroup parent) {
TextView result=(TextView)convertView;
if (convertView==null) {
result=(TextView)getLayoutInflater()
.inflate(R.layout.tag_listview_header, null);
}
result.setText(caption);
return(result);
}
};
是的,你说得对。这被称为一个。该类已定义,但从未指定名称。(
SectionAdapter
实际上是匿名类的超类型。)它声明一个类并重写一个方法
类似于这样声明一个类:
class MySectionedAdapter extends SectionedAdapter
{
@Override
protected View getHeaderView(...)
{
...
}
}
然后实例化该类:
SectionedAdapter标记SectionedAdapter=new MySectionedAdapter()代码>
这是一个匿名的内部类——没有名字,语法略有不同。在某些情况下,当您只需要类的一个特定实例时,可以使用它。例如,比较器类通常以这种方式实现并传递到排序函数中
您实现的类实际上可以是一个接口,而不是一个类,如Runnable