Button點擊事件大概能夠分爲如下幾種:java
還有另外的方法就不一 一介紹了android
建立完成後,從左邊的的工具欄拖拽一個button進去:app
拖拽事後點擊下方的xxxx.xml這裏是test.xml進去會有你剛剛拖進去的button配置,你也能夠手動在xml添加按鈕和其餘組件(我的不推薦,容易出錯)ide
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 <!--新添加的按鈕 --> 7 <Button 8 android:id="@+id/button1" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="Button" /> 12 13 </LinearLayout>
從上圖能夠看到這就是咱們剛剛添加的按鈕所配置的xml,其中函數
android:id 是給button 綁定一個句柄,語法是:@+id/按鈕的名字(其餘組件同理)工具
android:layout_width 是指定按鈕的寬度this
android:layout_height 是指定按鈕的高度spa
android:text 是指定按鈕的名字3d
配置完成後在gen/下R.java自動生成咱們剛剛建立的button和layout了code
而後在咱們Activity加載咱們配置layout
在OnCreate調用setContenView:
1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState); 3 //加載test.layout 4 setContentView(R.layout.test); 5 6 }
上面的R.layout.test就是R.java文件當中的test,從上截圖能夠找出
匿名內部類:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //加載活動頁面 setContentView(R.layout.activity_main); //對控件進行賦值 btn1 = (Button) this.findViewById(R.id.button1); //修改button的名字 btn1.setText("點我咯"); //綁定點擊事件監聽(這裏用的是匿名內部類建立監聽) btn1.setOnClickListener(new OnClickListener(){ int i = 0; public void onClick(View v) {
//點擊彈出你消息框 Toast toast = Toast.makeText(getApplicationContext(),"你點擊了"+(++i)+"次", Toast.LENGTH_LONG);//提示被點擊了 toast.show(); } }); }
運行結果:
實現OnClickListener的方法:
新建一個ButtonClickListener類
1 package com.example.helloworld; 2 3 import android.content.Context; 4 5 import android.view.View; 6 import android.view.View.OnClickListener; 7 import android.widget.Toast; 8 9 public class ButtonClickListener implements OnClickListener{ 10 //實現OnClickListener接口 11 //定義一個上下文變量 12 private Context c; 13 //定義一個構造函數傳入上下文 14 public ButtonClickListener (Context c){ 15 this.c=c; 16 } 17 //實現OnClic方法 18 @Override 19 public void onClick(View v) { 20 // TODO Auto-generated method stub 21 Toast.makeText(c, "乃好,安卓1班", Toast.LENGTH_SHORT).show(); 22 } 23 24 25 26 27 28 }
在Activity類中調用:
package com.example.helloworld; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加載活動頁面 setContentView(R.layout.activity_main); //對控件進行賦值 btn1 = (Button) this.findViewById(R.id.button1); //修改button的名字 btn1.setText("點我咯"); //綁定點擊事件監聽(調用接口) btn1.setOnClickListener(new ButtonClickListener(this)); } }
運行結果:
XML中指定Button的onClick的屬性
在layout的配置文件中找到button1的控件。在裏面的添加一個android:onclick屬性:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!--新添加的按鈕 --> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:onClick="btnclick" /><!-- 添加一個屬性指定點擊事件的方法名 --> </LinearLayout>
在Activity實現btnCiick方法
1 package com.example.helloworld; 2 3 import android.app.Activity; 4 import android.app.AlertDialog; 5 import android.os.Bundle; 6 import android.view.Menu; 7 import android.view.MenuItem; 8 import android.view.View; 9 import android.view.View.OnClickListener; 10 import android.widget.Button; 11 import android.widget.TextView; 12 import android.widget.Toast; 13 14 15 public class MainActivity extends Activity { 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 //加載活動頁面 21 setContentView(R.layout.test); 22 } 23 //實現btnClick方法 24 public void btnClick(View v){ 25 Toast.makeText(this, "乃好,安卓1班", Toast.LENGTH_SHORT).show(); 26 27 }
運行結果同上
寫的不是很全面,但願對你們有幫助!!!