public class MainActivity extends Activity { /* * 第一種方式:匿名內部類 */ private Button wordButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 1.初始化當前所需的一個控件 * findViewById --返回的是一個View的對象 * * 2.設置Button的監聽器,經過監聽器實現點擊Button所要操做的事情 */ wordButton = (Button)findViewById(R.id.button1); //之因此用(Button)是由於findViewById返回的是一個View的對象,"View是全部控件的一個父類" wordButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 在當前onClick方法中監聽Button的動做 System.out.println("個人按鈕被點擊了"); } }); } }
運行結果>>監聽到點擊事件後執行類中的方法(即控制檯輸出「個人按鈕被點擊了」)。java
/* *第二種方式:獨立類 */ public class MainActivity extends Activity { //Button對象 private Button wordButton; private ImageButton imageButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wordButton = (Button)findViewById(R.id.button1); wordButton.setOnClickListener(new MyClick() { //調用父類的OnClick @Override public void onClick(View v){ super.onClick(v); Toast.makeText(MainActivity.this,"wordbutoon", 1).show(); } }); imageButton = (ImageButton)findViewById(R.id.imageButton1); imageButton.setOnClickListener(new MyClick() { //調用父類的OnClick @Override public void onClick(View v){ super.onClick(v); Toast.makeText(MainActivity.this,"imagebutoon", 1).show(); } }); } } /* * 獨立類 */ class MyClick implements OnClickListener{ @Override public void onClick(View v) { // 讓全部試用當前外部類的點擊事件的按鈕都要作出一個動做(改變透明度) v.setAlpha(0.5f); } } //[實際應用]:需求讓多個按鈕實現同一種動做的時候,可用此方法,簡化代碼。
運行結果>>監聽到按鈕點擊事件後實現獨立類中的方法(即點擊按鈕,透明度發生改變)。ide
/* * 第三種方式:接口 */ public class MainActivity extends Activity implements OnClickListener{ private Button wordButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wordButton = (Button)findViewById(R.id.button1); wordButton.setOnClickListener(this); } @Override public void onClick(View arg0) { Log.i("tog","第三種方式"); //Log用來打印日誌 } }
運行結果>>監聽到按鈕點擊事件後實現方法(即打印日誌)。this