安卓学习第一课——电话拨号器
这是初步代码
package com.example.dial;import android.support.v7.app.ActionBarActivity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.content.Intent; import android.net.Uri; import android.os.Bundle;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {//加载布局文件super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//查找到按钮Button bt_dail=(Button) findViewById(R.id.bt_dail);//给按钮注册点击事件bt_dail.setOnClickListener(new Mylistener());}private class Mylistener implements OnClickListener{ /*** 当按钮被点击的时候调用的方法*/@Overridepublic void onClick(View v) {// TODO Auto-generated method stubEditText et_number=(EditText) MainActivity.this.findViewById(R.id.et_number);String number=et_number.getText().toString();//意图 想干一件什么事情Intent intent=new Intent();intent.setAction(Intent.ACTION_CALL);//URI of an explicit phone number. 统一资源定位符//url 统一资源标示符intent.setData(Uri.parse("tel:"+number));startActivity(intent);}}}
修改后的
1 import android.app.Activity; 2 import android.content.Intent; 3 import android.net.Uri; 4 import android.os.Bundle; 5 import android.text.TextUtils; 6 import android.view.View; 7 import android.widget.EditText; 8 import android.widget.Toast; 9 10 public class MainActivity extends Activity { 11 12 private EditText et_number;//累的常元变量,便于后边内部类调用该数据 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 //加载布局文件 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main); 18 //查找到按钮 19 //Button bt_dail=(Button) findViewById(R.id.bt_dail); 20 //查找到文本框 21 et_number=(EditText) MainActivity.this.findViewById(R.id.et_number); 22 //给按钮注册点击事件//1。创建内部类点击事件 23 //bt_dail.setOnClickListener(new Mylistener()); 24 //匿名内部类 25 /*bt_dail.setOnClickListener(new OnClickListener(){ 26 27 @Override 28 public void onClick(View v) { 29 // TODO Auto-generated method stub 30 callPhone(); 31 } 32 33 });*/ 34 //3.让Activity实现接口 35 //bt_dail.setOnClickListener(this); 36 } 37 38 private void callPhone() { 39 // TODO Auto-generated method stub 40 String number=et_number.getText().toString().trim(); 41 //提取电话号码,将电话类型转化为字符串类型,如果有空格则去掉 42 //判断是否输入电话号码为空 43 //java里面会使用if("".equal(number)) 44 if(TextUtils.isEmpty(number)){ 45 46 Toast.makeText(MainActivity.this, "号码不为空", Toast.LENGTH_SHORT).show(); 47 return; 48 } 49 //意图 想干一件什么事情 50 Intent intent=new Intent(); 51 intent.setAction(Intent.ACTION_CALL); 52 //URI of an explicit phone number. 统一资源定位符 53 //url 统一资源标示符 54 intent.setData(Uri.parse("tel:"+number)); 55 startActivity(intent); 56 } 57 58 /* 第二种种方法 59 * private class Mylistener implements OnClickListener{ 60 // 当按钮被点击的时候调用的方法 61 62 @Override 63 public void onClick(View v) { 64 callPhone(); 65 } 66 67 }*/ 68 69 /*@Override 70 public void onClick(View v) { 71 // TODO Auto-generated method stub 72 switch(v.getId()){ 73 case R.id.bt_dail: 74 callPhone(); 75 break; 76 } 77 78 }*/ 79 //4.在布局文件里面绑定一个点击的方法 80 public void dailButtonClicked(View view){ 81 callPhone(); 82 } 83 }
首先修改的前后变化是:
1.输入号码,避免有空格,利用String number=et_number.getText().toString().trim();使得出现的空格全部去掉了。
2.打电话是不能让号码为空,所以需要判断什么时候号码为空,然后显示号码不能为空。
if(TextUtils.isEmpty(number)){ 45 46 Toast.makeText(MainActivity.this, "号码不为空", Toast.LENGTH_SHORT).show(); 47 return; 48 }下面说一下事件监听的4中方法。1、bt_dail.setOnClickListener(new Mylistener());然后创建MyListener方法。2.匿名内部类,匿名监听
25 /*bt_dail.setOnClickListener(new OnClickListener(){ 26 27 @Override 28 public void onClick(View v) { 29 // TODO Auto-generated method stub 30 callPhone();//callphone 是监听函数 31 } 32 33 });3.让Avtivity实现接口//要实现Activity接口 35 bt_dail.setOnClickListener(this);
public void onClick(View v) { 71 // TODO Auto-generated method stub 72 switch(v.getId()){ 73 case R.id.bt_dail: 74 callPhone(); 75 break; 76 } 4.在xml中写 android:onClick="dailButtonClicked"然后再java文件中写出该方法
public void dailButtonClicked(View view){ 81 callPhone(); 82 }
记住常用的是第三种方法。适用于要写很多事件监听方法的时候
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context="com.example.dial.MainActivity$PlaceholderFragment" > 10 11 <EditText 12 android:id="@+id/et_number" 13 android:layout_width="match_parent" 14 android:layout_height="wrap_content" 15 android:layout_alignParentTop="true" 16 android:layout_centerHorizontal="true" 17 android:layout_marginTop="39dp" 18 android:ems="10" 19 android:inputType="phone" > 20 21 <requestFocus /> 22 </EditText> 23 24 <Button 25 android:onClick="dailButtonClicked" 26 android:id="@+id/bt_dail" 27 android:layout_width="wrap_content" 28 android:layout_height="wrap_content" 29 android:layout_alignParentRight="true" 30 android:layout_below="@id/et_number" 31 android:layout_marginLeft="14dp" 32 android:layout_marginTop="50dp" 33 android:text="@string/dail" /> 34 35 </RelativeLayout>
转载于:https://www.cnblogs.com/Yvettey-me/p/3832131.html
安卓学习第一课——电话拨号器相关推荐
- 初识安卓小程序(Android电话拨号器)
首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"电话拨号器",创建的时候点击"clipart",如图: 然后在res文件夹下找到layout文件夹, ...
- Android学习第三天 创建demo 电话拨号器
Hello World! 打开Android Studio,点击右上角"File"=>"New"=>"New Project" ...
- Android入门——电话拨号器和4种点击事件
关于HelloWorld为,电话拨号程序还AndroidA入门demo,从这个样例我们要理清楚做安卓项目的思路. 大体分为三步: 1.理解需求,理清思路 2.设计UI 3.代码实现 电话拨号器 1. ...
- Android入门——电话拨号器和四种点击事件
相对于HelloWorld来说,电话拨号器也是Android的一个入门demo,从这个样例我们要理清楚做安卓项目的思路. 大体分为三步: 1.理解需求,理清思路 2.设计UI 3.代码实现 电话拨号器 ...
- JavaScript学习 第一课(一)
JavaScript学习 第一课(一) 学习内容 一.什么是JavaScript 二.如何引用JavaScript 三.JavaScript使用时注意的事项 四.JavaScript中的保留字与关键字 ...
- android案例一 电话拨号器
效果图: 电话拨号器的核心原理: 意图 MainActivity代码: private EditTest et_number; //加载一个布局 setContentView(R.layout.Ma ...
- android 拨号器 目录,Android 电话拨号器
安卓系统一般自带有:电话,邮件,浏览器功能: 本文章简单,讲解电话自带的电话拨号功能进行,电话拨号. 电话拨号器的:逻辑很简单 首先获取输入的电话号码 然后在点击按钮的时候,发送一个隐式的Intent ...
- Android电话拨号器实例详解
笔者正在自学Android开发,随着学习的进程的加深,我会写一些小白级别的案例,一是为了保存代码和笔记,二也是为了供同样热爱Android的小伙伴参考.这里写了一个小案例,叫电话拨号器.下面详细介绍如 ...
- [Android]电话拨号器
继续今天的Android,经过昨天大体了解了Android开发的一些基本文件结构,今天来做一个电话拨号器! 预期达到的效果 实现过程 首先还是按照昨天第一篇教程,新建一个项目叫PhoneCall的An ...
最新文章
- MongoDB导入json数据
- 《Android传感器开发与智能设备案例实战》——第2章,第2.4节安装ADT
- 数据结构与算法书籍推荐
- aop区别 decorator_Decorator或Proxy模式;AOP拦截器
- 图论 —— 生成树 —— 最小生成树 —— Kruskal
- [HNOI2013]比赛 搜索
- [转帖]规模化敏捷-简要对比SAFe、LeSS和DAD模式
- 解决eclipse反编译乱码
- 代码整洁之道:想要成为一个更好的程序员,你要注意这些方面
- [转载]Java 2007:新年展望
- netkeeper显示651_关于电信Netkeeper客户端升级的通知
- 在OPENSTACK中 WIN7和WIN2008 R2实例启动时蓝屏报 STOP:0X0000005DT
- 截止失真放大电路_一起学模电:6、放大电路静态与动态分析方法
- 玩转NFT夏季:这份工具宝典值得收藏
- 学习大数据需要哪些数学知识?
- 串口通信的隔离传输方案记录
- 我的足迹(Appinventor练习)
- python使用“./“,“../“ ,“/“路径
- 如何查看自己的公网ip
- 洛谷 P3858 路标设置
热门文章
- nodejs 快速发布rtsp server
- opencv 高反差保留算法
- opencv 一种灰度图像增强方式
- linux下iptables的编译及简单使用
- GBK转unicode码查询表
- 【kafka】浅谈Kafka的多线程消费的设计
- 95-36-220-ChannelHandler-RejectedExecutionHandlers
- 【Spring] Spring boot 报错 Unable to start ServletWebServerApplicationContext due to missing ServletWe
- 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?
- Spark Structured SQL : JDBC写入Oracle