Android-Button点击事件

 

Button点击事件大概可以分为以下几种:

  1. 匿名内部类
  2. 实现OnClickListener接口
  3. 指定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     }

 

 

运行结果同上

 

 

写的不是很全面,希望对大家有帮助!!!

 

 

 

 

 

 

 

 

posted @ 2016-11-17 14:19  小白萌新  阅读(13604)  评论(0编辑  收藏  举报