Android开发教程:拨打电话的简单实现
Android打电话主要就是用内部类加上监听器实现的,比较的简单和粗糙,这里没有进行什么美化。用到的是以前所用的MVC模式,其中main.xml就相当于view视图层,主要是通过activity文件的调用从而达到视图界面的搭建
首先是页面的实现,页面设计的只是功能用到的一些东西。在string.xml中定义文字提示信息,下面是string.xml的部分代码:
- <string name="app_name">拨打电话</string>
- <string name="myPhone">请输入您要拨打的号码:</string>
- <string name="dial_phone">拨打</string>
然后在main.xml中,定义视图层显示页面,以下是部分代码:
- //定义显示标签的提示信息
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/myPhone"/>
- //输入文本框的显示风格
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/phone_number"/>
- //按钮的显示及其按钮的值
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:id="@+id/dial_btn"
- android:text="@string/dial_phone" />
随后就是监听的注册和实现,在activity文件中进行编译,通过内部类方法实现监听器的注册和监听实现。要实现拨打功能首先就要获取用户输入的号码,要处理的文本框输入信息的值是一个EditText类型的值,但是传过来的值是一个String字符串,很有可能里面会有空格的出现,这时就需要进行字符串的去空格操作。这些操作进行完毕后需要进行判断得到的字符串是否为空,如果是空值,电话肯定就拨打不出去了;若不为空就要封装一个拨打电话的intent,并且将电话号以uri的形式传入到activity对象中。以下是部分代码:
- EditText numberEt;
- Button dialBtn;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- findViews();
- /*创建内部监听类*/
- dialBtn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- //调用系统的拨号服务实现电话拨打功能
- String phone_number = numberEt.getText().toString();
- //对字符串进行去空格操作
- phone_numberphone_number = phone_number.trim();
- if(phone_number!=null && !phone_number.equals("")){
- //封装一个拨打电话的intent,并且将电话号码封装成一个Uri对象传入
- Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+ phone_number));
- PhoneActivity.this.startActivity(intent);
- }
- }
- });
- }
- public void findViews(){
- numberEt = (EditText) this.findViewById(R.id.phone_number);
- dialBtn = (Button) this.findViewById(R.id.dial_btn);
- }
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20