第一种:在类中,定义一个类接口,然后给出类的定义(最简单、直观)
public class Test extends Activity{ Button btn; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R,layout.main); ///给按钮添加监听器 MyOnClickListener listener=new MyOnClickListener(); btn.setOnClickListener(listener); } ///给出监听器类的定义 class MyOnClickListener implements OnClickListener{ @Override public void onClick(View arg0){ Toast.makeTest......show(); } } }
第二种:使用匿名内部类(自己目前最经常看到的写法,实际上就是将第一种的写在了一起)
public class Test extends Activity { Button btn; public void onCreate(Bundle savedInstanceState ){ super.onCreate(savedInstanceState ); setContentView (R. layout.main ); //匿名内部类写法 btn.setOnClickListener (new OnClickListener (){ @Override public void onClic(View v ){ Toast .makeTest....show(); } }); } }
第三种:使用更简化,直接在类上实现监听接口
public class Test extends Activity implements OnClickListener{ Button btn; public void onCreate(Bundle savedInstanceState ){ super.onCreate(savedInstanceState ); setContentView (R. layout.main ); btn.setOnClickListener (this); } //////直接覆盖 onClick方法就可以 @Override public void onClick (View v){ Toast .makeText( ...).show (); } }
时间: 2024-10-29 21:19:22