开发一个简单的拨号器。
开发一个应用的步骤:
小应用的步骤:
1.设计界面
2.activity
3.设计业务层 如果程序比较简单就将代码直接写在activity中
大应用的步骤
1.设计业务层。用android junit测试完成
2.设计界面
3.设计activtiy
我们按照一个简单的应用来开发;
1.设计界面
三个元素,标题,文本输入框,按钮
main.xml 这里面的标签前面的文章都介绍过,这里就不再介绍了;
String.xml
R.java
2.设计activtiy
AndroidManifest.xml
3.由于我们将业务写在了activity里所以没有写业务层
4.运行项目
[img]
http://dl.javaeye.com/upload/picture/pic/55839/8d16bc79-6ecb-329b-b859-9f42897b6c00.bmp
[/img]
这是在电脑上运行的程序 所以不能拨打现实生活中的电话号码,我们要验证项目是否可以拨打号码,那就再开一个模拟终端;然后那个端口号码就是这个模拟终端的电话号码,那么我们来用这个程序拨打5556这个电话,结果打通了。程序验证成功;
开发一个应用的步骤:
小应用的步骤:
1.设计界面
2.activity
3.设计业务层 如果程序比较简单就将代码直接写在activity中
大应用的步骤
1.设计业务层。用android junit测试完成
2.设计界面
3.设计activtiy
我们按照一个简单的应用来开发;
1.设计界面
三个元素,标题,文本输入框,按钮
main.xml 这里面的标签前面的文章都介绍过,这里就不再介绍了;
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/phoneNumber" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/buttonText" android:id="@+id/button" /> </LinearLayout>
String.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">请输入手机号码</string> <string name="app_name">xx拨号器</string> <string name="buttonText">拨打这个号码</string> </resources>
R.java
/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ package cn.perfect.call; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class id { public static final int button=0x7f050001; public static final int phoneNumber=0x7f050000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040001; public static final int buttonText=0x7f040002; public static final int hello=0x7f040000; } }
2.设计activtiy
package cn.perfect.call; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class PhoneActivity extends Activity { /** * 将从控件中得到值声明成全局变量,这样每次都只查询一次就行 * 第二次就直接从这个全局变量中拿就可以了 这样提高效率 */ private EditText phoneEditText; private Button callButton; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //得到文本框的内容 phoneEditText =(EditText) this.findViewById(R.id.phoneNumber); callButton =(Button) this.findViewById(R.id.button); /** * 给按钮添加一个点击事件 onclicklistenter 的参数是OnClickListener是一个接口 * 我们要这个接口的一个实现类,要得到这个接口的实现类的方法有两种,一个是创建一个类 * 实现这个接口,第二种方法就是匿名内部类 */ callButton.setOnClickListener(new OnClickListener () { public void onClick(View v) { // TODO Auto-generated method stub String numberString = phoneEditText.getText().toString(); /** * 接下来的操作就是将这个电话号码播出去 * 要调用android的方法来实现,为了保证安全,在使用电话拨号服务的时候要声明电话 * 拨号权限,这个权限的功能是在安装这个应用的时候,如果你涉及到了拨号服务,就会 * 提示用户:“这个应用使用了电话拨号服务 你是否还要安装” * 添加这个拨号权限是在功能文件AndroidManifest.xml中添加,<uses-permission android:name="android.permission.CALL_PHONE"/> * 那么android还有什么权限设置呢 在这个文件中查看 * android-sdk-windows\docs\reference\android\Manifest.permission.html * 发短信 接受短信 刻录语音都要加权限 */ //现在添加了拨号权限 然后我们开始拨号 拨号要创建一个名为意图的对象 /** * Intent (动作,数据) 两个参数 * Intent就是将动作和参数交给android 然后让他判断这个动作应该使用什么来执行 * "tel:"+numberString 这个参数的格式是android规定的; */ Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+numberString)); /** * 意图对象生成后 要传递给操作系统 执行这个意图 * 内部类访问外部类的实例的方法 */ PhoneActivity.this.startActivity(intent); } }); } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.perfect.call" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/xx" android:label="@string/app_name"> <activity android:name=".PhoneActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="7" /> <uses-permission android:name="android.permission.CALL_PHONE"/> </manifest>
3.由于我们将业务写在了activity里所以没有写业务层
4.运行项目
[img]
http://dl.javaeye.com/upload/picture/pic/55839/8d16bc79-6ecb-329b-b859-9f42897b6c00.bmp
[/img]
这是在电脑上运行的程序 所以不能拨打现实生活中的电话号码,我们要验证项目是否可以拨打号码,那就再开一个模拟终端;然后那个端口号码就是这个模拟终端的电话号码,那么我们来用这个程序拨打5556这个电话,结果打通了。程序验证成功;