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
                    
                }
            });
        }
    }
  • 相关阅读:
    Oracle 推出 ODAC for Entity Framework 和 LINQ to Entities Beta版
    Entity Framework Feature CTP 5系列文章
    MonoDroid相关资源
    MSDN杂志上的Windows Phone相关文章
    微软学Android Market推出 Web Windows Phone Marketplace
    使用 Visual Studio Agent 2010 进行负载压力测试的安装指南
    MonoMac 1.0正式发布
    Shawn Wildermuth的《Architecting WP7 》系列文章
    使用.NET Mobile API即51Degrees.mobi检测UserAgent
    MongoDB 客户端 MongoVue
  • 原文地址:https://www.cnblogs.com/Jhope/p/5282175.html
Copyright © 2011-2022 走看看