全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android onClick按钮单击事件的四种常用写法

这里使用四种onClick单击事件,来实现电话拔号器的DEMO。

XML文件

<EditText 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:inputType="phone" 
 android:ems="10" 
 android:id="@+id/et_number" 
 android:layout_alignParentTop="true" 
 android:layout_alignParentLeft="true" 
 android:layout_alignParentStart="true" /> 
<Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:text="@string/dial_number" 
 android:id="@+id/bt_dial" 
 android:layout_below="@id/et_number" 
 android:layout_alignRight="@id/et_number" 
 android:layout_alignEnd="@id/et_number" /> 

第一种、匿名内部类:

protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 Button bt_dial = (Button) findViewById(R.id.bt_dial); 
 bt_dial.setOnClickListener(new View.OnClickListener() { 
  @Override 
  public void onClick(View view) { 
   dialPhone(); 
  } 
 }); 
} 

第二种、自定义单击事件监听类:

protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  et_number = (EditText) MainActivity.this.findViewById(R.id.et_number); 
  Button bt_dial = (Button) findViewById(R.id.bt_dial); 
  bt_dial.setOnClickListener(new MyListener()); 
 } 
 private class MyListener implements View.OnClickListener { 
 @Override 
 public void onClick(View view) { 
  dialPhone(); 
 } 
} 

第三种、Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理:

public class MainActivity extends Activity implements View.OnClickListener { 
 EditText et_number; 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  et_number = (EditText) MainActivity.this.findViewById(R.id.et_number); 
 Button bt_dial = (Button) findViewById(R.id.bt_dial); 
  bt_dial.setOnClickListener(this); 
 } 
 public void onClick(View view) { 
  switch (view.getId()){ 
   case R.id.bt_dial: 
    dialPhone(); 
    break; 
   default: 
    break; 
  } 
 } 
} 

第四种、在XML文件中显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法:

<Button 
  android:onClick="dialPhoneMethod" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:text="@string/dial_number" 
  android:id="@+id/bt_dial" 
  android:layout_below="@id/et_number" 
  android:layout_alignRight="@id/et_number" 
  android:layout_alignEnd="@id/et_number" /> 
public void dialPhoneMethod(View view){ 
 dialPhone(); 
} 
private void dialPhone() { 
 String number = et_number.getText().toString().trim(); 
 if (TextUtils.isEmpty(number)){ 
  Toast.makeText(this, "电话号码不能为空", Toast.LENGTH_LONG).show(); 
  return; 
 } 
 Intent intent = new Intent(); 
 intent.setAction(Intent.ACTION_CALL); 
 intent.setData(Uri.parse("tel:" + number)); 
 startActivity(intent); 
} 

总结:

第四种写法整个代码中都不用声明button就可以实现button的单击事件。但通常不推荐这样使用,第三种方法是onClick最佳的的使用方式。按钮少的时候用匿名内部类会比较快,比如写demo测试的时候。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# android  # onclick  # Android ButtonOnClick事件的写法总结  # 详谈Android中onTouch与onClick事件的关系(必看)  # Android响应事件onClick方法的五种实现方式小结  # Android ListView 子控件onClick正确获取position的方法  # Android onClick方法与setOnClickListener方法对比  # Android使用TextView  # 设置onClick属性无效的解决方法  # 三种Android单击事件onclick的实现方法  # Android中button实现onclicklistener事件的两种方式  # Android 布局中的android:onClick的使用方法总结  # 单击  # 第四种  # 自定义  # 种方法  # 四种  # 会比  # 较快  # 来实现  # 中都  # 第二种  # 第一种  # 就可以  # 为空  # 第三种  # string  # Button  # text  # true  # layout_alignParentTop  # et_number 


相关文章: c# 在高并发场景下,委托和接口调用的性能对比  建站主机SSH密钥生成步骤及常见问题解答?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  青岛网站建设如何选择本地服务器?  香港服务器WordPress建站指南:SEO优化与高效部署策略  c# 在ASP.NET Core中管理和取消后台任务  上海网站制作开发公司,上海买房比较好的网站有哪些?  电商平台网站制作流程,电商网站如何制作?  如何选择靠谱的建站公司加盟品牌?  如何挑选最适合建站的高性能VPS主机?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  建站ABC备案流程中有哪些关键注意事项?  制作农业网站的软件,比较好的农业网站推荐一下?  C#如何在一个XML文件中查找并替换文本内容  ,sp开头的版面叫什么?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  金*站制作公司有哪些,金华教育集团官网?  已有域名如何免费搭建网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  建站之星2.7模板快速切换与批量管理功能操作指南  小型网站建站如何选择虚拟主机?  如何在云主机快速搭建网站站点?  网站制作企业,网站的banner和导航栏是指什么?  如何通过WDCP绑定主域名及创建子域名站点?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  中山网站制作网页,中山新生登记系统登记流程?  网站专业制作公司有哪些,做一个公司网站要多少钱?  如何在Golang中指定模块版本_使用go.mod控制版本号  建站之星如何助力企业快速打造五合一网站?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  智能起名网站制作软件有哪些,制作logo的软件?  如何快速搭建高效简练网站?  详解jQuery中基本的动画方法  浅谈Javascript中的Label语句  建站主机CVM配置优化、SEO策略与性能提升指南  宝塔建站教程:一键部署配置流程与SEO优化实战指南  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何在云虚拟主机上快速搭建个人网站?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何通过虚拟机搭建网站?详细步骤解析  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  官网网站制作腾讯审核要多久,联想路由器newifi官网  宝塔建站助手安装配置与建站模板使用全流程解析  淘宝制作网站有哪些,淘宝网官网主页?  常州自助建站费用包含哪些项目?  PHP正则匹配日期和时间(时间戳转换)的实例代码  PHP 500报错的快速解决方法 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。