为了账号安全,请及时绑定邮箱和手机立即绑定

其实,这个bt1.setOnClickListener(new MyOnClickListener(){ new的也是一个匿名内部类吧?

    bt1.setOnClickListener(new MyOnClickListener(){
    @Override
    public void onClick(View v) {
	// TODO 自动生成的方法存根
        super.onClick(v);
	Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();
		}
});
  1. 这个也是匿名内部类?

  2. 只不过new的这个匿名内部类是实例的一个外部类,而之前 是一个接口?

正在回答

3 回答

MyOnClickListener使用了OnClickListener接口了吗?如果使用了的话,这种写法是属于匿名内部类实现按钮的监听。不理解的话,你可以分两部分写,首先MyOnClickListener implement OnClickListener,然后重写onClick方法,方法内实现Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();然后new 一个OnClickListenerd的实例MyOnClickListener,最后写入bt1.setOnClickListener(MyOnClickListener);这种不是匿名内部类的写法。

0 回复 有任何疑惑可以回复我~
#1

风中过客 提问者

非常感谢!
2015-06-05 回复 有任何疑惑可以回复我~
#2

yong_a 回复 风中过客 提问者

不客气,表达能力有限,理解就好
2015-06-06 回复 有任何疑惑可以回复我~
#3

hitman

setOnClickListener括号内的参数是接口还是对象
2016-08-17 回复 有任何疑惑可以回复我~

我用手机版aide编写时它报错,unknown entity OnClickListener,为什么?

0 回复 有任何疑惑可以回复我~

匿名内部类就是没有名字的内部类,多用于关注实现而不关注实现类的名称。所以通过匿名内部类的形式实现监听的话,我们就不用上面说的那么麻烦,还要创建一个MyOnClickListener类implement OnClickListener,可以直接bt1.setOnClickListener(new OnClickListener(){......});当然若是MyOnClickListener使用了OnClickListener接口,它也就具有了OnClickListener接口的onClick方法

0 回复 有任何疑惑可以回复我~
#1

风中过客 提问者

我看视频里还有一种写法 OnClickListener listener =new OnClickListener(){ }; 写在类里面,方法体外面,这个是匿名内部类吗? 把它赋值到成员变量里了?
2015-06-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312585    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

其实,这个bt1.setOnClickListener(new MyOnClickListener(){ new的也是一个匿名内部类吧?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信