package android.example;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Android_eg1 extends Activity {
Button bt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt=(Button)findViewById(R.id.click);
bt.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "You made a mess", Toast.LENGTH_LONG).show();
}
});
} //onCreate()
}//class
我是 java 的新手,我知道核心 java 的基础知识。这是我试图通过按钮类了解事件处理的示例程序。我无法理解这部分:
"bt.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "You made a mess", Toast.LENGTH_LONG).show();
}
});"
在 setOnClickListener(parameter) 内部,他们为什么要给出函数定义?(public void onClick(View v) })
这是可以接受的吗?
原文由 Angus 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 java 中,这是一个实现接口的生成类。您可以在函数参数内动态生成一个类,或者您可以创建一个外部类并传递此类的实例,或者通过您的活动实现您的侦听器所需的接口并将您的活动作为侦听器传递。