1、使用匿名內部類實現 onClickListener接口,通用;java
2、讓MainActivity實現onClickListener接口,這種方法適合於有多個組件時,這樣用會更加的方便;android
3、在XML文件中的相應組件中定義onClick方法,自定義的方法;app
實現的源碼:ide
package com.example.clickbutton; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; //此處爲了用第二種方法因此在開始的Activity中實現了Onclicklistener接口; public class MainActivity extends Activity implements OnClickListener { private Button button,button2,button3,button4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button1); button2=(Button)findViewById(R.id.button2); button3=(Button)findViewById(R.id.button3); button4=(Button)findViewById(R.id.button4); button2.setOnClickListener(this);//第二種方式的button button3.setOnClickListener(this);//第二種方式的button // 第一種:使用匿名內部類: button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this , "這是第一個button", 1).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // 第二種:讓MainActivity implements OnClickListener 接口,這樣就能夠以下寫了: public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button2: Toast.makeText(MainActivity.this , "這是第二個button", 1).show(); break; case R.id.button3: Toast.makeText(MainActivity.this , "這是第三個button", 1).show(); break; default: break; } } // 第三種是用xml定義(綁定)一個onClickListener事件 public void showMessage(View v){ Toast.makeText(MainActivity.this, "第三種方法實現事件綁定的button", 1).show(); } }
第三種在XML中的組件代碼:this
<Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/button3" android:text="@string/button4" android:onClick="showMessage"/>