zoukankan      html  css  js  c++  java
  • Android学习笔记-----------按钮的点击事件

    Android学习笔记-----------按钮的点击事件

     一.通过设置Button的onclik属性

    自定义Button的onclik属性,属性值就是按钮点击事件的方法名

    Button不需要指定Id,系统就可以执行此方法

    例如:

    1  <Button 
    2         android:layout_width="wrap_content"
    3         android:layout_height="wrap_content"
    4         android:text="第一个按钮"
    5         android:onClick="onclick"
    6         />
    public void onclick(View v){
            Toast.makeText(MainActivity.this,"这是第一个按钮",0).show();
        }

    二.设置按钮点击监听

    这种方法需要指定Button的Id,通过Id.setOnClickListener(OnClickListener)来执行点击按钮后需要执行的程序

    这种实现方式有三种写法

    接下来的集中实现方式都用以下布局文件

    1 <Button 
    2         android:id="@+id/bt_print"
    3         android:layout_width="wrap_content"
    4         android:layout_height="wrap_content"
    5         android:text="第一个按钮"
    6         />

    1.实现点击接口的方式

    这种方式需要MainActivity继承OnClickListener接口,实现其中的onClick方法.

    这种方式在处理多按钮的情况下比较好用,可以让代码的调理看起来更清晰.

    //实现OnClickListener接口
    public class MainActivity extends ActionBarActivity implements OnClickListener{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button bt_print = (Button)findViewById(R.id.bt_print);
            //由于MainActivity已经实现OnClickListener接口,所以参数为this
            bt_print.setOnClickListener(this);
        }
    
        @Override
        //重写onClick方法
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"这是第一个按钮", 0).show();
        }
        
    }

     2.内部类

    这种方式需要定义一个实现了OnClickListener接口的内部类

    特点与第一种方式相同.

     1 public class MainActivity extends ActionBarActivity{
     2 
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         setContentView(R.layout.activity_main);
     7         Button bt_print = (Button)findViewById(R.id.bt_print);
     8         //实例化内部类
     9         MyOnClickListner myOnClickListner = new MyOnClickListner();
    10         //参数为实现了OnClickListener接口的内部类对象
    11         bt_print.setOnClickListener(myOnClickListner);
    12     }
    13     //定义一个内部类,实现OnClickListener接口
    14     class MyOnClickListner implements OnClickListener{
    15 
    16         @Override
    17         //重写onClick方法
    18         public void onClick(View v) {
    19             Toast.makeText(MainActivity.this, "这是第一个按钮", 0).show();
    20             
    21         }
    22         
    23     }
    24 }

     3.匿名内部类

    通过匿名内部类来实例化一个OnClickListener的实现子类.

    这种方式会让代码看起来不怎么整洁,但是当布局中只有一个按钮可以用这种方式来节约时间.

    public class MainActivity extends ActionBarActivity{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button bt_print = (Button)findViewById(R.id.bt_print); 
            //定义一个匿名内部类,他是OnClickListener的实现子类
            bt_print.setOnClickListener(new OnClickListener() {
                
                @Override
                //重写onClick方法
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    
                }
            });
        }
    }
  • 相关阅读:
    NAIPC 2019-It’s a Mod, Mod, Mod, Mod World(类欧几里德模板)
    BAPC 2018 Preliminaries-Isomorphic Inversion(字符串哈希)
    Cubemx 生成工程代码失败的原因
    共生滤波器相关论文分析
    西瓜书6.2 matlab的libsvm使用
    西瓜书4.4 基于基尼指数选择划分的决策树 预剪枝与后剪枝
    西瓜书4.3 编写过程 决策树
    西瓜书 5.5 编写过程(标准BP与累计BP)
    西瓜书3.4 解题报告(python 多分类学习 十折交叉法)
    西瓜书3.3 尝试解题(python)对率回归 极大似然估计
  • 原文地址:https://www.cnblogs.com/Jhope/p/5282175.html
Copyright © 2011-2022 走看看