button.setOnClickListener(this); }[/SIZE][/FACE][/SIZE][/FACE][/P][P][FACE=Tahoma][SIZE=14px][FACE=Tahoma][SIZE=14px] @Override public void onClick(View v) {
Toast.makeText(getApplication(), "OnClick", Toast.LENGTH_LONG).show(); }[/SIZE][/FACE][/SIZE][/FACE][/P][P][FACE=Tahoma][SIZE=14px][FACE=Tahoma][SIZE=14px]} 这就是一个很典型的例子,当然也可以这样写:
[/SIZE][/FACE][/SIZE][/FACE][/P][CODE]import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class SSSS extends Activity { private Button button; private OnClickListener clickListener = new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub } }; @Override protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(clickListener); }}
[/CODE][/P][P][FACE=Tahoma]
[/FACE][/P][P][FACE=Tahoma][FACE=Tahoma][SIZE=14px]下面是View类的setOnClickListener方法,把和回调相关代码贴出来。什么贴它呢,因为Button继承于TextView,而TextView继承于View,在View里面处理的回调:[/FACE][/P][P][FACE=Tahoma][FACE=Tahoma][SIZE=14px]
[/SIZE][/FACE][/FACE][/P][P][FACE=Tahoma][FACE=Tahoma][SIZE=14px]
[/SIZE][/FACE][/FACE][/P][CODE]/**
*
*/
public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource { /** * Listener used to dispatch click events. * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected OnClickListener mOnClickListener;
/** * * 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);
}
mOnClickListener = l; }
/** * Call this view's OnClickListener, if it is defined. * * @return True there was an assigned OnClickListener that was called, false * otherwise is returned. */ public boolean performClick() {
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
if (mOnClickListener != null) {
playSoundEffect(SoundEffectConstants.CLICK);