Android-Button点击事件

 

Button点击事件大概能够分为如下几种:java

  1. 匿名内部类
  2. 实现OnClickListener接口
  3. 指定Button的onClick的属性(XML)

还有另外的方法就不一 一介绍了android

新建一个活动页面
找到res/layout右键new —>Android XML File

 

 

建立完成后,从左边的的工具栏拖拽一个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     }

 

 

运行结果同上

 

 

写的不是很全面,但愿对你们有帮助!!!

相关文章
相关标签/搜索