setOnClickListener(新的 OnClickListener(){})

新手上路,请多包涵
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 许可协议

阅读 438
1 个回答

在 java 中,这是一个实现接口的生成类。您可以在函数参数内动态生成一个类,或者您可以创建一个外部类并传递此类的实例,或者通过您的活动实现您的侦听器所需的接口并将您的活动作为侦听器传递。

原文由 Pascal Piché 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题