zoukankan      html  css  js  c++  java
  • Android 点击事件,4种回调。

    1.  继承监听接口。

    2.  xml方式 : 设置 android:onClick

    3. 内部类

    4. 匿名类

    ---------------------------------------------------------------

    1. 实现 OnClickListener 接口

    package com.itheima28.caller;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    
    /**
     * @author andong
     * 程序刚运行就显示的界面
     */
    public class MainUI4 extends Activity implements OnClickListener {
    
        /**
         * 当界面刚被创建时回调此方法
         */
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);        // 必须执行此句代码. 执行父类的初始化操作.
            
            setContentView(R.layout.main);        // 设置当前界面显示的布局.
            
            // 关联方法
            Button btnCall = (Button) findViewById(R.id.btn_call);  
            
    // 注册监听 btnCall.setOnClickListener(
    this); } //
    // 如果用内部类,则外部类,不需要实现OnClickListener 接口
    // class MyOnClickListener implements OnClickListener { // // @Override // public void onClick(View v) { // System.out.println("MainUI3 拨打号码.."); // call(); // } // } /** * 拨打电话的业务方法 */ private void call() { // 1. 取出输入框中的号码 EditText etNumber = (EditText) findViewById(R.id.number); // 输入框对象 String number = etNumber.getText().toString(); // 将要拨打的号码 // 2. 根据号码拨打电话 Intent intent = new Intent(); // 创建一个意图 intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话 intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码 startActivity(intent); // 执行这个动作 } @Override public void onClick(View v) { System.out.println("MainUI4 拨打号码.."); call(); } }

    2 .  xml的方式

    在布局文件xml,添加onClick事件,然后,从代码中,

    <Button 
        android:id ="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_contetn"
        android:text="单击"
        android:onClick="clicktest"     //添加事件
    />

    从代码中,添加clicktest方法,原型,要和View.OnClickListener中没有实现的原型一样,即添加 (View v)的方法参数

    // 方法的原型,与 OnClickListener 中定义的方法原型,一致。
    public
    void clicktest(View view){ Log.i("Test","以xml方式,设置事件") }

      

    3.   内部类

    这种方式,容易理解。

    // 1. 声明控件
    private Button btn;
    
    
    @override
    protected void onCreate(Bundle savedInstanceState) {
        supper.onCreate(savedInstanceState);
        
        setContentView(R.layou.activity_main);
    
        //  2. 关联控件
         btn =(Button)findViewById(R.id.button1);
    
    
         Listener list = new Listener();
        //  3. 注册监听
         btn.setOnClickListener(
               //实现接口的类对象
              list
        );
    }
    
    
    //内部类
    class Listener implements View.OnClickListener {
    
       @override
       public  void  onClick(View v){
           //回调方法 
          Log.i("TEST","被单击了");
        }
      
    }    
  • 相关阅读:
    MarkDown
    【ImageView】ImageView点击事件报错空指针
    【原创】初识懒人开发库---ButterKnife
    将博客搬至CSDN
    【练习】内容提供器二、创建自己的内容提供器并测试
    【练习】内容提供器一、访问其他程序的数据
    【转载】Android数据存储之SQLite
    【实战】广播实践,实现登录强制下线
    【实战】聊天窗口的实现
    【转载】Adapter用法总结大全
  • 原文地址:https://www.cnblogs.com/sdgtxuyong/p/5780402.html
Copyright © 2011-2022 走看看