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 }
运行结果同上
写的不是很全面,但愿对你们有帮助!!!