zoukankan      html  css  js  c++  java
  • AndroidButton点击事件

     

    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     }

    运行结果同上

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

  • 相关阅读:
    IOS sqlite数据库增删改查
    宏定义偷懒型set,get
    创业白手起家也须要条件——北漂18年(14)
    Python模拟登录wap版百度贴吧+自己主动回贴
    纯CSS制作冒泡提示框
    tiny210(s5pv210)移植u-boot(基于 2014.4 版本号)——移植u-boot.bin(打印串口控制台)
    ZOJ 3587 扩展KMP
    用选择法对10个整数按从小到大排序(数组)
    设计一个算法,推断一个二叉树是否为全然二叉树
    Hibernate学习笔记(八) — 懒载入与抓取策略
  • 原文地址:https://www.cnblogs.com/liangshijie/p/6073582.html
Copyright © 2011-2022 走看看