• 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","被单击了");
        }
      
    }    
  • 相关阅读:
    业务线--node中间层做一个透传的项目
    JavaScript 字符串replace全局替换
    纯HTML和CSS实现点击切换
    css 清除一些默认的设置
    js异步请求方式
    VScode编辑器个性化配置
    webpack 解决跨域问题
    node.js连接MongoDB数据库,db.collection is not a function完美解决
    nodejs中&#x5B89;&#x5353;&#x7AEF;的编码如何转换为中文
    深入理解js的变量提升和函数提升
  • 原文地址:https://www.cnblogs.com/sdgtxuyong/p/5780402.html
Copyright © 2020-2023  润新知