• 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;
            }
        }
    
    }
  • 相关阅读:
    《法老的宝藏》读后感 读书笔记
    《缘缘堂随笔》读后感 读书笔记
    Appium-Python3--UI自动化-[-3-]-元素定位-获取APP中的toast,判断该元素是否存在
    Appium-Python3--UI自动化-[-2-]-启动一款app演示
    Appium-python--UI自动化-[-1-]-环境搭建
    四十四、九九乘法表
    二十、接口测试汇总(二)
    Jenkins-[--5--]-启动时报错:consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data
    十九、RF接口测试汇总(一)
    十八、RF中selenium2library构造函数中参数解释
  • 原文地址:https://www.cnblogs.com/yaowen/p/4884006.html
Copyright © 2020-2023  润新知