前言:看本文章有任何问题可以联系QQ:454633390 一起努力,共同进步,每天更新我学习的内容
做的第一个算是比较正式小应用,先上图:
功能很简单,就是一个简单的窗口,在窗口中有一个文本框,一个按钮,一段文本,在文本框中输入数字点击拨号,会调用android系统本身的拨号应用。
然后就是按照正常流畅创建一个android application project,项目创建完了我们就开始画一个界面
(android应用都是从画界面开始的)
首先打开:res-layout目录,找到activity_main.xml,初始化的时候布局方式是RelativeLayout,因为我们界面用的是线性布局所以要修改成LinearLayout布局方式,修改方式为:
点击预览窗口 Graphical Layout
然后在中央空白处右击:选择 change layout 然后在弹出的界面选择 如图:
然后在界面上画一个个组件
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/cntrolname" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/mobile" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button" />
其中TextView相当于java中的Label;EditTest相当于java中的TestFiled,每一个组件初始化的时候都要填写2个属性android:layout-width android:layout-height 属性值fill-parent代表的是填充全部范围,所以文本框填充的是水平屏幕的宽度 , wrap_content代表的是包含,也就是说你有几行文字它就得把这几行文字给包含起来。
在所有的3个组件内容中我们都有看到一个表达式 @string/*** 意思是:从res资源目录中的Values文件夹下面的strings.xml找key对应的Value值。strings.xml内容如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">电话拨号器</string> <string name="action_settings">Settings</string> <string name="cntrolname">请输入你的手机号</string> <string name="button">拨号</string> </resources>
当然你也可以直接写 android:text="拨号"这样的模式,但是这样写不方便管理不利于国际化处理。
还有如果以后项目大了一个strings.xml文件如果存放太多的key:values值会显得很臃肿,我们可以在values文件夹下面新建string2.xml文件,调用方式和原先一样。
另外表达式 @+id/**的意思是给该组件在R.java中赋值一个唯一的ID,让其在.java代码中可以调用到该组件
调用方式是: R.id.button
注意:在res资源目录下面修改或创建的任何东西都会在R.java中保存记录,在前面文章中提到过(如果是新建一个文件会在R.java中增加一个内部类,如果是修改文件会在R.java中修改内部类中的变量)
布局完成后在入口类MainActivity.java中给其添加监听方法,代码如下:
package com.example.phone; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //通过findViewById方法找到窗口中的组件,并给组件添加监听方法 Button bt = (Button) this.findViewById(R.id.button); // bt.setOnClickListener(new OnclickListener()); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText et = (EditText) findViewById(R.id.mobile); String value = et.getText().toString(); Intent it = new Intent(); it.setAction("android.intent.action.CALL"); // it.addCategory("android.intent.category.DEFAULT"); it.setData(Uri.parse("tel:" + value)); startActivity(it);// 方法内部会自总会Intent方法添加类别android.intent.category.DEFAULT,根据类别找到action,根据action找到activity } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } private final class OnclickListener implements View.OnClickListener { @Override public void onClick(View v) { EditText et = (EditText) findViewById(R.id.mobile); String value = et.getText().toString(); Intent it = new Intent(); it.setAction("android.intent.action.CALL"); // it.addCategory("android.intent.category.DEFAULT"); it.setData(Uri.parse("tel:" + value)); startActivity(it);// 方法内部会自总会Intent方法添加类别android.intent.category.DEFAULT,根据类别找到action,根据action找到activity } } }添加监听方法我采用了2种都在程序中表明,因为我们做的是电话拨号器而android系统本身就自带了拨号应用,所以我们可以在我们的项目中直接调用拨号应用。
应用中的通信是通过Inent(汉译:意愿)来进行交流;首先New一个Intent对象,然后告诉该对象你要找谁?也就是
it.setAction("android.intent.action.CALL");//给系统说我要找拨号应用另外根据拨号应用要传递数据的格式在塞入数据it.setData(Uri.parse("tel:" + value));
相关推荐
【Android 电话拨号器】是一个关键的系统组件,它允许用户通过用户界面拨打和管理电话。在Android系统中,电话拨号器是系统服务的一部分,由电信框架提供支持,通常与联系人应用紧密集成。这篇文章将深入探讨电话...
总结来说,通过这个电话拨号器的示例,我们可以学习到Android应用开发的基础知识,包括项目创建、资源管理、UI设计、事件监听和系统服务调用。这些技能对于开发任何Android应用都是至关重要的。通过实践这样的项目,...
通过学习和实践这个"Android电话拨号器"项目,初学者可以深入了解Android应用开发的基本流程,包括UI设计、事件处理、权限管理以及异常处理等方面的知识。此外,这也可以作为进一步学习更复杂功能,如来电显示、通话...
3. **联系人同步与管理**:Android的电话拨号器还涉及到联系人的同步和管理,这包括从系统数据库或其他数据源(如Google账户)获取联系人,以及保存和更新联系人信息。开发者可以从源码中了解如何使用`...
对于电话拨号器,通常会包含一个输入框用于输入电话号码,以及多个按钮代表数字0-9、星号(*)和井号(#)。例如: ```xml android:orientation="vertical" android:layout_width="match_parent" android:layout_...
在Android平台上,开发一个电话拨号器应用是一个基础但实用的功能。这个实例展示了如何通过编程方式触发设备的内置电话拨号器,以便用户可以拨打指定的电话号码。下面我们将深入探讨实现这一功能所需的关键知识点。 ...
3. 电话服务交互:Android系统提供了一个名为`TelephonyManager`的接口,用于与系统的电话服务进行通信。拨号器会通过这个接口来发起呼叫,查询通话状态等。 4. 权限管理:拨打电话需要`READ_PHONE_STATE`和`CALL_...
在Android平台上,开发一个电话拨号器应用是一个常见的任务,尤其在构建企业级CRM(客户关系管理)系统时,这样的功能能极大提升用户体验。本文将深入探讨如何利用Android SDK和编程语言Java或Kotlin来创建一个电话...
通过深入学习和理解这个Android电话拨号器源代码,开发者不仅可以增强对Android通信机制的理解,还能提升在系统级应用开发上的技能。对于想要涉足Android拨号器开发的人员来说,这是一份宝贵的资源。
这个“Android电话拨号器”项目是一个初学者的实践案例,旨在帮助新手理解Android应用开发的基础知识,特别是与电话拨号相关的API和组件。这个项目基于Android 2.1版本,尽管现在最新的Android版本已经更新到更高,...
总的来说,电话拨号器在Android平台上的实现涉及到用户交互设计、系统权限控制、通话状态监听、性能优化等多个方面,开发者需要具备扎实的Android开发基础,同时关注用户体验和隐私安全,以打造一个高效、稳定且用户...
`ActivityCompat.requestPermissions()`用于发起权限请求,第二个参数是一个请求码,用于在回调方法中区分不同的权限请求。 在AndroidManifest.xml中,必须声明`<uses-permission>`标签来请求拨打电话的权限: ```...
这个“安卓电话拨号案例”是一个初级的Android开发示例,旨在帮助初学者理解如何构建一个简单的电话拨号应用。通过分析这个案例,我们可以深入学习Android SDK中的关键组件、权限管理以及UI设计。 首先,Android...
在Android开发中,拨号器是系统的核心组件之一,它允许用户输入电话号码并发起通话。对于初学者来说,理解拨号器的工作原理以及如何在应用程序中集成拨号功能是学习Android开发的重要环节。以下是对这个主题的详细...
这个教程将带你了解如何为初学者实现这样的功能,创建一个简单的电话拨号器应用。我们主要关注以下几个关键知识点: 1. **权限声明**: 在AndroidManifest.xml文件中,你需要添加拨打电话的权限。这是必要的,因为...
在Android平台上,构建一个带有按键声的电话拨号界面是一个常见的需求,特别是在开发仿系统功能的应用时。这个“Android电话拨号带按键声demo”旨在为开发者提供一个实例,展示如何实现这一功能。下面我们将详细探讨...
Android经典拨号器开发设计
在电话拨号场景下,我们可以创建一个Intent来启动系统内置的电话拨号器。 1. 创建Intent:在Java代码中,我们可以通过`Intent intent = new Intent(Intent.ACTION_DIAL);`来创建一个拨号Intent。ACTION_DIAL表示...