zoukankan      html  css  js  c++  java
  • Android journey3 @点击事件的4种写法

    对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件:

     1 package com.itheima.phone;
     2 
     3 import android.net.Uri;
     4 import android.os.Bundle;
     5 import android.app.Activity;
     6 import android.content.Intent;
     7 import android.view.Menu;
     8 import android.view.View;
     9 import android.view.View.OnClickListener;
    10 import android.widget.Button;
    11 import android.widget.EditText;
    12 import android.widget.Toast;
    13 
    14 public class MainActivity extends Activity implements OnClickListener {
    15     private EditText et_number;
    16 
    17     // 当activity被启动的时候 调用的方法.
    18     @Override
    19     protected void onCreate(Bundle savedInstanceState) {
    20         super.onCreate(savedInstanceState);
    21         setContentView(R.layout.activity_main);
    22         Button bt_dail = (Button) findViewById(R.id.bt_dail);
    23         et_number = (EditText) findViewById(R.id.et_number);
    24         // 点击事件的第一种写法
    25         bt_dail.setOnClickListener(new DialButtonListener());
    26 
    27         // 点击事件的第二种写法.
    28         bt_dail.setOnClickListener(new OnClickListener() {
    29             @Override
    30             public void onClick(View v) {
    31                 doClick();
    32             }
    33         });
    34         
    35         //点击事件的第三种写法.
    36         bt_dail.setOnClickListener(this);
    37         
    38 
    39     }
    40 
    41     private void doClick() {
    42         String number = et_number.getText().toString().trim();
    43         if ("".equals(number)) {
    44             Toast.makeText(MainActivity.this, "号码不能为空", Toast.LENGTH_SHORT)
    45                     .show();
    46         } else {
    47             Toast.makeText(MainActivity.this, "拨打:" + number,
    48                     Toast.LENGTH_SHORT).show();
    49             Intent intent = new Intent();
    50             intent.setAction(Intent.ACTION_CALL);
    51             intent.setData(Uri.parse("tel:" + number)); // tel:110
    52             // URL : 统一资源定位符 表示一个网络地址 http:// ftp:// rstp://
    53             // URI : 统一资源标示符 范围更加广泛
    54             startActivity(intent);
    55         }
    56     }
    57 
    58     private class DialButtonListener implements OnClickListener {
    59         @Override
    60         public void onClick(View v) {
    61             doClick();
    62         }
    63     }
    64 
    65     @Override
    66     public void onClick(View v) {
    67         switch (v.getId()) {
    68         case R.id.bt_dail:
    69             doClick();
    70             break;
    71         }
    72         
    73     }
    74     
    75     //在xml布局文件的配置中,给button添加了属性 android:onClick = “响应函数名”  
    76     public void btnClick(View view){
    77         doClick();
    78     }
    79 }

     点击事件方法总结:

    1、直接通过显示的内部类

    2、通过匿名内部类

    3、通过MainActivity实现OnClickListener:通常在界面中有较多需要响应的控件时使用

    4、直接在xml文件中配置对应控件的onClick属性,此种方法通常在测试代码时使用,因为比较不直观,使代码难以维护

     
  • 相关阅读:
    python正则表达式
    pyperclip模块
    python画国旗
    linux6.5禁用telnet
    限制用户su到root
    按系统日期生成目录
    微软windows logo配色rgb
    fastclick使用与 fastclick ios11.3相关bug原因(ios输入框点击变得不灵敏,ios input失焦后,页面上移,点击不了)
    vue iframe嵌套页面高度自适应 (ios 宽度扩大的bug , ios展示比例问题)
    iOS设备 微信h5页面回退 内容不刷新的问题
  • 原文地址:https://www.cnblogs.com/allenpengyu/p/3569483.html
Copyright © 2011-2022 走看看