这是初步代码

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

安卓学习第一课——电话拨号器相关推荐

  1. 初识安卓小程序(Android电话拨号器)

    首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"电话拨号器",创建的时候点击"clipart",如图: 然后在res文件夹下找到layout文件夹, ...

  2. Android学习第三天 创建demo 电话拨号器

    Hello World! 打开Android Studio,点击右上角"File"=>"New"=>"New Project" ...

  3. Android入门——电话拨号器和4种点击事件

    关于HelloWorld为,电话拨号程序还AndroidA入门demo,从这个样例我们要理清楚做安卓项目的思路. 大体分为三步: 1.理解需求,理清思路 2.设计UI 3.代码实现 电话拨号器 1.  ...

  4. Android入门——电话拨号器和四种点击事件

    相对于HelloWorld来说,电话拨号器也是Android的一个入门demo,从这个样例我们要理清楚做安卓项目的思路. 大体分为三步: 1.理解需求,理清思路 2.设计UI 3.代码实现 电话拨号器 ...

  5. JavaScript学习 第一课(一)

    JavaScript学习 第一课(一) 学习内容 一.什么是JavaScript 二.如何引用JavaScript 三.JavaScript使用时注意的事项 四.JavaScript中的保留字与关键字 ...

  6. android案例一 电话拨号器

    效果图: 电话拨号器的核心原理:  意图 MainActivity代码: private EditTest et_number; //加载一个布局 setContentView(R.layout.Ma ...

  7. android 拨号器 目录,Android 电话拨号器

    安卓系统一般自带有:电话,邮件,浏览器功能: 本文章简单,讲解电话自带的电话拨号功能进行,电话拨号. 电话拨号器的:逻辑很简单 首先获取输入的电话号码 然后在点击按钮的时候,发送一个隐式的Intent ...

  8. Android电话拨号器实例详解

    笔者正在自学Android开发,随着学习的进程的加深,我会写一些小白级别的案例,一是为了保存代码和笔记,二也是为了供同样热爱Android的小伙伴参考.这里写了一个小案例,叫电话拨号器.下面详细介绍如 ...

  9. [Android]电话拨号器

    继续今天的Android,经过昨天大体了解了Android开发的一些基本文件结构,今天来做一个电话拨号器! 预期达到的效果 实现过程 首先还是按照昨天第一篇教程,新建一个项目叫PhoneCall的An ...

最新文章

  1. MongoDB导入json数据
  2. 《Android传感器开发与智能设备案例实战》——第2章,第2.4节安装ADT
  3. 数据结构与算法书籍推荐
  4. aop区别 decorator_Decorator或Proxy模式;AOP拦截器
  5. 图论 —— 生成树 —— 最小生成树 —— Kruskal
  6. [HNOI2013]比赛 搜索
  7. [转帖]规模化敏捷-简要对比SAFe、LeSS和DAD模式
  8. 解决eclipse反编译乱码
  9. 代码整洁之道:想要成为一个更好的程序员,你要注意这些方面
  10. [转载]Java 2007:新年展望
  11. netkeeper显示651_关于电信Netkeeper客户端升级的通知
  12. 在OPENSTACK中 WIN7和WIN2008 R2实例启动时蓝屏报 STOP:0X0000005DT
  13. 截止失真放大电路_一起学模电:6、放大电路静态与动态分析方法
  14. 玩转NFT夏季:这份工具宝典值得收藏
  15. 学习大数据需要哪些数学知识?
  16. 串口通信的隔离传输方案记录
  17. 我的足迹(Appinventor练习)
  18. python使用“./“,“../“ ,“/“路径
  19. 如何查看自己的公网ip
  20. 洛谷 P3858 路标设置

热门文章

  1. nodejs 快速发布rtsp server
  2. opencv 高反差保留算法
  3. opencv 一种灰度图像增强方式
  4. linux下iptables的编译及简单使用
  5. GBK转unicode码查询表
  6. 【kafka】浅谈Kafka的多线程消费的设计
  7. 95-36-220-ChannelHandler-RejectedExecutionHandlers
  8. 【Spring] Spring boot 报错 Unable to start ServletWebServerApplicationContext due to missing ServletWe
  9. 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?
  10. Spark Structured SQL : JDBC写入Oracle