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();
        }
  • 相关阅读:
    如何在Ubuntu Server 18.04上安装Microsoft的Procmon
    如何在Ubuntu 20.04上安装Wine 5.0
    如何在Kali Linux 2020中启用SSH服务
    如何在Ubuntu 20.04 LTS Focal Fossa上安装Apache Groovy
    如何使用命令在Ubuntu 20.04 Linux上安装Vmware Tools
    在Ubuntu 20.04 LTS Focal Fossa上安装Zabbix Agent
    hdu 2089 不要62
    hdu 2093 成绩排名
    hdu 2104 hide handkerchief
    leetcode147对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/564085446java/p/4638296.html
Copyright © 2011-2022 走看看