zoukankan      html  css  js  c++  java
  • android点击事件的四种方式

    android点击事件的四种方式

    第一种方式:创建内部类实现点击事件

    代码如下:

    package com.example.dail;
    
    import android.text.TextUtils;
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener {
    
        private EditText etext;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取text文本框内容
            etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
            //根据id获取button按钮
            Button btn = (Button) this.findViewById(R.id.button_dail);
            //给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
            btn.setOnClickListener(new MyOnClickListener());
        }
       
        private class MyOnClickListener implements OnClickListener{
            @Override
            public void onClick(View arg0) {
                callphone();
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    
        private void callphone() {
            String e_number = etext.getText().toString();
            if(TextUtils.isEmpty(e_number)) {
                Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
                return ;
            }
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:"+e_number));
            startActivity(intent);
        }
    
    }
        

    第二种方式:采用匿名内部类实现点击事件

    package com.example.dail;
    
    import android.text.TextUtils;
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener {
    
        private EditText etext;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取text文本框内容
            etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
            //根据id获取button按钮
            Button btn = (Button) this.findViewById(R.id.button_dail);
            //给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
    //        btn.setOnClickListener(new MyOnClickListener());
            //第二种方式:采用匿名内部类实现点击事件
            btn.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    callphone();
                }
            });
    
        }
      
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    
        private void callphone() {
            String e_number = etext.getText().toString();
            if(TextUtils.isEmpty(e_number)) {
                Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
                return ;
            }
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:"+e_number));
            startActivity(intent);
        }
    
    }

    第三种方式:采用Activity实现OnClickListener接口方式来实现点击事件

    package com.example.dail;
    
    import android.text.TextUtils;
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener {
    
        private EditText etext;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取text文本框内容
            etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
            //根据id获取button按钮
            Button btn = (Button) this.findViewById(R.id.button_dail);
            //给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
    //        btn.setOnClickListener(new MyOnClickListener());
            //第二种方式:采用匿名内部类实现点击事件
            /*btn.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    callphone();
                }
            });*/
            //第三种方式:采用Activity实现OnClickListener接口方式来实现点击事件
            btn.setOnClickListener(this);
            
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    
        private void callphone() {
            String e_number = etext.getText().toString();
            if(TextUtils.isEmpty(e_number)) {
                Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
                return ;
            }
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:"+e_number));
            startActivity(intent);
        }
    
           @Override
        public void onClick(View arg0) {
            callphone();
        }
    
    }

    第四种方式:在布局中绑定一个点击方法

    第一步:在布局文件中添加android:onClicke属性

    <Button 
            android:onClick="dailButtonOnClick"
            android:id="@+id/button_dail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/editText1"
            android:text="@string/dail"
            />

    第二步:在MainActivity中添加dailButtonOnClick方式

    private void dailButtonOnClick(){
            callphone();
        }
  • 相关阅读:
    shell之for和if实现批量替换多目录下的文件
    问题:Linux报swap空间占用过高,但物理内存还有空余
    git常用命令汇总
    VMware下liunx虚拟机仅主机模式上网
    通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
    Linux启动过程简述
    Nginx禁止ip访问或IP网段访问方法
    解决docker主机配置了DaoCloud.io的加速后重启失败问题Failed to start Docker Application Container Engine
    Windows下用python来获取微信撤回消息
    Oracle 参数文件spfile
  • 原文地址:https://www.cnblogs.com/564085446java/p/4638296.html
Copyright © 2011-2022 走看看