内部接口android.view.View.OnClickListener
2013-05-24 16:52
337 查看
在使用Widget组件来布局时,看到下面一段代码
查看一下,Button继承TextView继承View,
setOnClickListener(OnClickListener l)是View中的方法,
setText()是TextView中的方法,
奇怪的是OnClickListener竟然是定义在View中的接口:
show= (TextView)findViewById(R.id.show_textview); press=(Button)findViewById(R.id.click_button); press.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ show.setText("哎哟,按钮被点到了"); } } );--接口式匿名内部类
查看一下,Button继承TextView继承View,
setOnClickListener(OnClickListener l)是View中的方法,
/** * Register a callback to be invoked when this view is clicked. If this view is not * clickable, it becomes clickable. * * @param l The callback that will run * * @see #setClickable(boolean) */ public void setOnClickListener(OnClickListener l) { if (!isClickable()) { setClickable(true); } getListenerInfo().mOnClickListener = l; }
setText()是TextView中的方法,
奇怪的是OnClickListener竟然是定义在View中的接口:
/** * Interface definition for a callback to be invoked when a view is clicked. */ public interface OnClickListener { /** * Called when a view has been clicked. * * @param v The view that was clicked. */ void onClick(View v); }
总结: 1, 不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例 public class B implements A{} A a = new B(); //引用变量a被定义为A接口类型,引用了B实例 A a = new A(); //错误,接口不允许实例化 2,类的内部可以定义接口
相关文章推荐
- android实现OnClickListener接口覆写onClick(View v)方法, 它上面@Override报错
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclas
- 回调深入理解 同步回调 以android中View.OnClickListener为列
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclass
- android:btn OnClickListener接口
- android通过注解实现findViewById 和 setOnClickListener
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclas
- android 自定义View implements OnClickListener
- Android中使用OnClickListener接口实现按钮点击的低级失误
- Android笔记:View.OnClickListener与DialogInterface.OnClickListener
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclass
- Android View.setOnclickListener(),View.onTouchEvent(),View.setOnTouchListener()关系源码分析
- 【Android API简述】android.view.View.OnClickListener
- android setOnClickListener(View.OnClickListener) 问题
- android中的View.OnClickListener 怎么使用?我的2.3.3的模拟器不能运行啊?
- android按钮点击——implements View.OnClickListener
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclass
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclas
- Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclass
- 【Android】画廊式的图片浏览器,使用HorizontalScrollView取代Gallery,OnClickListener的参数传递