Button点击事件大概可以分为以下几种:
- 匿名内部类
- 实现OnClickListener接口
- 指定Button的onClick的属性(XML)
还有另外的方法就不一 一介绍了
新建一个活动页面
找到res/layout右键new —>Android XML File
创建完成后,从左边的的工具栏拖拽一个button进去:
拖拽过后点击下方的xxxx.xml这里是test.xml进去会有你刚刚拖进去的button配置,你也可以手动在xml添加按钮和其他组件(个人不推荐,容易出错)
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 是指定按钮的宽度
android:layout_height 是指定按钮的高度
android:text 是指定按钮的名字
配置完成后在gen/下R.java自动生成我们刚刚创建的button和layout了
然后在我们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 }
运行结果同上
写的不是很全面,希望对大家有帮助!!!