zoukankan      html  css  js  c++  java
  • android 12 click事件的不同实现方式

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <Button
            android:id="@+id/btnLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登陆" 
            android:onClick="onClick"/>
        <Button
            android:id="@+id/btnExit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="退出" 
            android:onClick="onClick"/>
        
    </RelativeLayout>

     1 继承:

    package com.sxt.day03_04;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Toast;
    activity:写逻辑代码地方,自动创建,不能自己去new,第一个调用onCreate方法,
    public class MainActivity extends Activity implements OnClickListener{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            //savedInstanceState用于保存Activity中的数据,是一个hashMap,
            super.onCreate(savedInstanceState);
            //将activity_main.xml设置为本Activity显示的布局
            //R代表res文件夹,只要res文件夹中有id值的控件都会在R中创建一个常量,
            setContentView(R.layout.activity_main);
            //将MainActivity.this地址保存在Button.OnClickListener属性中
            //点击的时候执行this这个监听器的onClick方法
            findViewById(R.id.btnLogin).setOnClickListener(this);
            findViewById(R.id.btnExit).setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {//View是所有布局的基类
            switch (v.getId()) {
            case R.id.btnLogin:
                Toast.makeText(this, "执行登陆操作", 2000).show();
                break;
            case R.id.btnExit:
                finish();
                break;
            }
        }
    
    }

    2 内部有名类:

    package com.sxt.day03_05;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //将MainActivity.this地址保存在Button.mOnClickListener属性中
            //用内部类(内部有名类,不是匿名类)实现,如果很多类都用LoginClickListener这个对象则有很好的复用性
            findViewById(R.id.btnLogin).setOnClickListener(new LoginClickListener());
        }
    
        class LoginClickListener implements OnClickListener{
            @Override
            public void onClick(View v) {
                if(v.getId()==R.id.btnLogin){
                    Toast.makeText(MainActivity.this, "执行登陆操作", 2000).show();
                }
            }
        }
    
    }

     3 外部类

    package com.sxt.day03_06;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
        EditText metId,metPwd;//用户名  密码
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            setListener();//设置按钮的点击事件监听器
        }
    
        private void setListener() {
            MyClickListener listener=new MyClickListener(metId, metPwd, this);
            findViewById(R.id.btnLogin).setOnClickListener(listener);
            findViewById(R.id.btnExit).setOnClickListener(listener);
        }
    
        private void initView() {
            metId=(EditText) findViewById(R.id.etId);
            metPwd=(EditText) findViewById(R.id.etPwd);
        }
    
    }
    package com.sxt.day03_06;
    
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MyClickListener implements OnClickListener {
        EditText metId,metPwd;
        MainActivity mActivity;
        
        public MyClickListener(EditText metId, EditText metPwd,
                MainActivity mActivity) {
            super();
            this.metId = metId;
            this.metPwd = metPwd;
            this.mActivity = mActivity;
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.btnExit:
                mActivity.finish();//关闭Mainactivity
                break;
            case R.id.btnLogin:
                //取出登陆编号
                String id=metId.getText().toString();
                String pwd=metPwd.getText().toString();
                Toast.makeText(mActivity, "登陆编号:"+id+",登陆密码:"+pwd, Toast.LENGTH_LONG).show();
                break;
            }
        }
    
    }
  • 相关阅读:
    【赵强老师】使用Docker Compose进行服务编排
    【赵强老师】Weblogic域和域的组成
    【赵强老师】管理Docker镜像
    3. 清理统一审计 AUD$UNIFIED 基表部份数据
    4. AUD$UNIFIED 基表及 分区键创建索引
    2.更改统一审计AUD$UNIFIED基表 默认表空间
    1.更改统一审计AUD$UNIFIED 分区为1天
    9. 将APEX18.2 升级到 APEX19.2 详细步骤
    1.2 安装中文语言包
    通过VBOX 导入系统工具 搭建APEX开发环境
  • 原文地址:https://www.cnblogs.com/yaowen/p/4884006.html
Copyright © 2011-2022 走看看