你好我最近开始用java编程,特别是在android上,因为我是java的新手,我找到了一些我不理解的东西。
theListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String pickedLanguage = "Your favorite programming language is : " + String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(MainActivity.this,pickedLanguage,Toast.LENGTH_LONG).show();
}
});
我不明白:
setOnItemClickListener
在其参数列表中包含一个新类?这怎么可能 ?这是怎么回事 ?我刚读了一个关于类的教程,它说类应该在一个文件中,并且应该与文件同名,基本上这是什么意思?我粘贴的示例代码说从这个函数创建一个属于适配器视图的新实例?我以为你只能创建一个新对象而不仅仅是一个来自对象的函数,我基本上不了解整个代码,怎么可能在方法中定义了一个新类?答案 0 :(得分:3)
它被称为匿名类,通常用于在调用方法时为方法提供接口实现,而不创建实现接口的单独类以便稍后实例化它。
在这种情况下,方法setOnItemClickListener
接收接口OnItemClickListener
的实例,我们可以创建一个单独的类来实现该接口,并稍后实例化或仅向该方法提供此时的匿名实现打电话。
您可以找到更多详细信息Anonymous Classes