在Android或Java开发中,对于button的OnClickListener有下面四种实现方式,可以根据需要选择合适的用法。

方法一:

适合场景:通用

Buttonbt_Demo=(Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//响应Clicked事件//......}});

方法二:

适合场景:适合有多个button或者button数组时使用

Buttonbt_Demo=(Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(listener);privateOnClickListenerlistener=newOnClickListener(){@OverridepublicvoidonClick(Viewarg0){//TODOAuto-generatedmethodstubswitch(arg0.getId()){caseR.id.bt_Demo://响应Clicked事件//......break;default:break;}}}

方法三:

适合场景:适合有多个button或者button数组时使用,这跟方法二其实差别不大

Buttonbt_Demo=(Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(newButtonListener());privateclassButtonListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewarg0){//响应Clicked事件//......}}

方法四:

适合场景:适合界面上有不同类型的控件,这种方式将所有控件的onclick方法在一个方法里面实现,看起来比较简洁

//在Activity中直接OnClickListener接口:importandroid.view.View.OnClickListener;publicclassMyActivityextendsActivityimplementsOnClickListener{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);//按纽Buttonbt_Demo=(Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(this);}//响应Click事件publicvoidonClick(Viewv){switch(v.getId()){caseR.id.bt_Demo://响应Clicked事件//......break;default:break;}}}

参考:http://blog.csdn.net/xcl168/article/details/14452807