Android开发学习——打电话应用

打电话应用

system/app/phone.apk  这个是打电话应用,这个Java API 不允许应用级程序员改写,系统级才可以

system/app/dialer.apk  这个是拨号器应用,可以重写一个第三方的拨号器

1.在res-layout-activity_main.xml里定义布局:

 1 <LinearLayout 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=".MainActivity"
10     android:orientation="vertical" >
11     <TextView
12         android:layout_width="wrap_content"
13         android:layout_height="wrap_content"  // 组件必须设置宽高,否则不能通过编译
14         android:text="请输入号码:"
15         />
16     <EditText
17         android:layout_width="match_parent"
18         android:layout_height="wrap_content"
19         android:id="@+id/et"
20         />
21     <Button
22          android:layout_width="match_parent"
23          android:layout_height="wrap_content"
24          android:text="拨打"
25          android:id="@+id/bt"    // 如果要在java代码中操作某个组件,则组件需要设置id,这样才能在代码中通过id拿到这个组件
26         />
27
28 </LinearLayout>

2.src里写源代码

 1 public class MainActivity extends Activity {
 2
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {  //App创建时调用由操作系统调用此方法
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7         //给按钮设置点击监听
 8         //拿到按钮对象
 9         Button bt = (Button) findViewById(R.id.bt);
10         //设置监听
11         bt.setOnClickListener(new Myclick());
12     }
13
14     class Myclick implements OnClickListener{
15         @Override
16         public void onClick(View arg0) {
17             // TODO Auto-generated method stub
18             System.out.print("按钮被点击了");
19             EditText et = (EditText) findViewById(R.id.et);
20             String phone =  et.getText().toString();
21             //在一个应用中启动另一个应用,在拨号器应用里启动打电话应用               //Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常               //设置动作,通过意图告知系统
22             Intent intent =  new Intent();
23             intent.setAction(Intent.ACTION_CALL);//设置动作,打电话
24             intent.setData(Uri.parse("tel:"+phone));
25             startActivity(intent);//把意图告诉系统
26         }
27
28     }
29
30
31 }

3.添加权限,在清单文件里,底下的permission-add-UsesPermission-右侧的name进行选择相应的权限,在代码中会自动生成,如下:

<uses-permission android:name="android.permission.CALL_PHONE"/>

RunAs--AndroidApplication,运行结果如下:

补充一点:

事件监听这个是常见的

点击事件的四种写法
第一种
* 定义一个MyListener实现onClickListener接口

Button bt1 = (Button) findViewById(R.id.bt1);
        bt1.setOnClickListener(new MyListener());

第二种
* 定义一个匿名内部类实现onClickListener接口

Button bt2 = (Button) findViewById(R.id.bt2);
        bt2.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                System.out.println("第二种");
                
            }
        });

第三种
* 让当前activity实现onClickListener接口

Button bt3 = (Button) findViewById(R.id.bt3);
        bt3.setOnClickListener(this);

第四种
* 给Button节点设置onClick属性,

android:onClick="click"
 
* 然后在activity中定义跟该属性值同名的方法

public void click(View v){
            System.out.println("第四种");
        }

时间: 2024-11-02 11:39:18

Android开发学习——打电话应用的相关文章

Android开发学习之路--网络编程之xml、json

一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载xampp,然后安装之类的就不再多讲了,参考http://cnbin.github.io/blog/2015/06/05/mac-an-zhuang-he-shi-yong-xampp/.安装好后,启动xampp,之后在浏览器输入localhost或者127.0.0.1就可以看到如下所示了: 这个就

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

Android开发学习---使用Intelij idea 13.1 进行android 开发

原文:Android开发学习---使用Intelij idea 13.1 进行android 开发 1.为什么放弃eclipse?太卡!! 实在受不了eclipse的卡了,运行WEB项目还好,但android开发实在太慢,太慢!经常卡死,CPU经常被占满! 看网上很多人都说比Intelij idea好用,就试下,目前还在test阶段,总之是各种不习惯,很多快捷键之类的跟eclipse完全不一样.还要多熟悉! 另外android studio 也比较卡,而且用起来相当难受,完全是intelij 的

【Android开发学习笔记】【第三课】Activity和Intent

首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

android 开发学习笔记 (一)

每个app 都有一个自己的 linux 进程: 每个进程都在自己的虚拟机里执行 两个app 可以跑在一个进程,一个vm里 android app 四大组件:activity,content provider,      services, broardcast receivers Content Resolver 激活 Content Provider You can start an      activity (or give it something new to do) by passi

Android开发学习---template requires a minimum SDK version of at least 7,build target API version of 14

adt 22.6.3的bug 当adt更新到22.6.3,其编辑器中最低支持api7,即android 2.1,这里可能是google故意这么做的,也可能是其bug.其target sdk 和compile sdk最低都为14,即anroid 4.0,这里建议都设为最高的api 19,即android 4.4;否则会一直报错,类似错误如下: This template requires a minimum SDK version of at least 7, and the current mi

android开发学习之路——连连看之游戏逻辑(五)

GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖,程序需要GameService组件包含如下方法.   ·start():初始化游戏状态,开始游戏的方法.     ·Piece[][] getPieces():返回表示游戏状态的Piece[][]数组.     ·boolean hasPieces():判断Pieces[][]数组中是否还剩Piec

Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/files/LoginTest.txt------/data/data/(包名)/files/(文件名) 导出的文件内容: 三.实现代码 新建一个Android 工程.这里我选择的是2.1即API 7,进行开发的,其它都是默认下一步下一步即可. /datasave/res/layout/activity

android开发学习笔记000

使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个一直梦想走技术流的再疯狂一次.2014.08.06. 直奔主题——>android开发学习笔记001 android开发学习笔记000