zoukankan      html  css  js  c++  java
  • Android实现点击事件的4种方式

    一、通过在activity_main.xml中,按钮button控件中添加onclick事件实现


    在   activity_main.xml 对应的按钮Button中加入下面红色事件

    <Button android:id="@+id/send_button"
            android:layout_width="wrap_content"
            android:layout_below="@id/content_edit"
            android:text="@string/send_button"
            android:onClick="call"
            android:layout_height="wrap_content"/>

    在布局对应的Activity,即MainActivity.java中加入下面方法,下面是点击拨打号码的时候的相关操作

      /**
         * 当拨打此号码的按钮被点击时触发此方法.
         * @param v
         */
        public void call(View v) {
            System.out.println("拨打电话……….");
           
            // 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);    // 执行这个动作
        }

    二、采用匿名内部类的方式,在布局初始化的时候添加事件监听


    在 activity_main.xml  不要添加onclick事件

    在布局对应的Activity,即MainActivity.java的onCreate方法中,添加下面代码实现事件监听:

            Button btnCall = (Button) findViewById(R.id.btn_call);
            btnCall.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    System.out.println("MainUI2 拨打电话.");
                    call();
                }
            });

    三、采用内部类的方式,在布局初始化的时候添加事件监听


    在 activity_main.xml  不要添加onclick事件

    在布局对应的Activity,即MainActivity.java的onCreate方法中,添加下面代码实现事件监听:

    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);        // 必须执行此句代码. 执行父类的初始化操作.
            setContentView(R.layout.main);                // 设置当前界面显示的布局.
            Button btnCall = (Button) findViewById(R.id.btn_call);
            btnCall.setOnClickListener(new MyOnClickListener());
        }
       
    class MyOnClickListener implements OnClickListener {

            @Override
            public void onClick(View v) {
                System.out.println("拨打号码..");
                call();
            }
        }
       
        /**
         * 拨打电话的业务方法
         */
        private void call() {

                   //实现事件触发的要执行的逻辑  

       }

    四、采用Activity实现接口的方式,实现事件监听


    在 activity_main.xml  不要添加onclick事件,  让布局Activity实现接口OnClickListener,并实现接口的方法

    public class MainActivity extends Activity implements OnClickListener

    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) {

            call();
        }

  • 相关阅读:
    项目中 2个或者多个EF模型 表名称相同会导致生成的实体类 覆盖的解决方法
    Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法;关于如何查看 EntityValidationErrors 详细信息的解决方法
    深夜杳杳
    我在学习
    IIS下新建虚拟目录
    Win10资源管理器异常
    Docker笔记三:Docker数据卷和DockerFile
    Docker笔记二:Docker拷贝,提交,进入容器和阿里云加速
    ElasticSearch7.x系列三:Logstash的使用
    ElasticSearch7.x系列二:Kibana的使用和C#的Nest客户端
  • 原文地址:https://www.cnblogs.com/zhongjianlong/p/3991502.html
Copyright © 2011-2022 走看看