<安卓那点事>写一个简单的电话拨号器
2016-01-14 09:30
561 查看
整个过程也是在不断的学习,在初步入门,跟着学习了一个简单的电话拨号器,比较能够了解activity是软件的门面,而且按钮是从一个动作或者界面或者activity到达另一个的方法,以及接触了监听组件的动作,读取用户输入数据等。(上面的话,可能并没有说的很清楚,一些名词可能也是不对,多见谅)首先是建立一个新的project,可以命名为bohaoqi,简单易懂没内涵,或者叫做phonecall也可以,拨号器(dialler)。(然后,我发现,其实用自己的安卓手机进行开发,可能要比模拟器更好一些)整个软件就一个界面,我们只需要一个activity就可以,整体大概是这样的。
一.文本“请输入电话号码!”<TextView /> 文本标签(activity_main.xml)如下
在整个过程中,可能用了一些不正规的语句,请大家见谅,还有粘贴的代码片段基本保证100%正确,下方解释中可能在 ; () { } 中有缺失或者中文输入,请注意。如果有任何建议意见都可以留言或私信。感谢。
<TextView android:text="请输入电话号码!" android:textSize="28sp" android:textColor="#562f8f" android:layout_width="match_parent" android:layout_height="wrap_content" />我们可以看出来:文本标签是<TextView />,而且每一个内容都是以android: 开始的:android:text=“ ” // “ ” 中是文本显示内容android:textSize=“ “ // ” “ 文本大小 ,文字一般选择sp,也可以选择dp,px等单位android:textColor=" " // " " 文本颜色(*此处着重一下)android:layout_width=" " // layout_width,就是当前activity 的宽度,有三种,match_parent ,继承父元素,wrap_content , 包围当前内容。android:layout_height=" " //和上同样理解。二.文本输入框等待用户输入<EditText />输入框标签 (activity_main.xml) 如下
<EditText android:id="@+id/et_phonenumber" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="此处输入phone number" android:inputType="phone"/>我们可以看出:输入标签是<EditText />,而且每一个内容都是以android: 开始的:android:id="@+id/et_phonenumber" //这是为当前内容或者模块赋一个id,后面要用到,比如后面监听这个模块等行为android:layout_width=" " //和上一样android:layout_height=" " //和上一样android:hint="此处输入号码" //hint=" " 就是在这个框中浅色提示信息,当有新问本输入就会”消失“;如果此处用text=” “,则直接默认了文本内容。(hint与text的区别;hint:n.暗示; 线索,迹象; 提示,注意事项; 微量; vt.暗示; vi.暗示,提示;)android:inputType="phone" //inputType=” “ 就是需要限制一下输入框的输入字符类型等内容限制,phone就是电话用符,而number可能就是0-9,等等我们应该还可以在此处不断的加入我们需要的东西,以达到”丰满“的当前内容卡(控件?)的意图。三.按钮(控件)的配置<Button />按钮标签(activity_main.xml) 如下
<Buttonandroid:id="@+id/bt"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="拨打"android:textSize="22sp"/>我们可以看出:按钮标签是<Button />,而且其中每一个”内容“都是以android: 开始的:android:id="@+id/bt" //和上一样android:layout_width=" " //和上一样android:layout_height=" " //和上一致android:text=" 拨打" //显示按钮内容为拨打android:textSize="22sp" //和上一样以上都是我们在配置我们的activity,也就是我们的界面(门面)布局以及内容——都是在activity_main.xml中添加的内容,也可以切换到可视化编辑,在上面中,老是(想要)用到标签这一说法,是因为我们修改的内容是 .xml 都是以< />来的,而且也没有 ; 来表示语句结束。以下就让我们来实现功能的基本配置四.修改 app-java-com.bohaoqi.tzonline.bohaoqi-MainActivity (android studio,eclipse里显示的路径可能不一样,但是东西就在这个里面)
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//拿到button对象Button bt = (Button) findViewById(R.id.bt);//给按钮设置一个点击侦听bt.setOnClickListener(new MyListener());}class MyListener implements View.OnClickListener{//当按钮被点击时,此方法被调用@Overridepublic void onClick(View v) {//拿到输入框对象EditText et= (EditText) findViewById(R.id.et_phonenumber);//拿到用户输入的电话号码,String phonenumber = et.getText().toString();//告诉系统我要打电话//创建意图独享Intent intent = new Intent();//设置意图对象要执行的动作intent.setAction(Intent.ACTION_CALL);/* 设置号码,你要打给谁 */intent.setData(Uri.parse("tel:"+phonenumber));//启动打电话应用startActivity(intent);}}}以上就是我们需要添加的类或者方法,以及调用android提供的相关接口/应用等setContentView(R.layout.activity_main); //这个就是显示我们的门面也就是我们的activity(此处是我们的activity_main,R.layou.这个在C/C++或java里都有的,类似C++中的root->left)如果我们有其他的activ9917ity,也可以在此处指定Button bt= (Button) findViewById(R.id.bt); // Button bt 创建一个Button 对象 bt ;(Button)强制转换为Button ; findViewById(R.id.bt) 找到制定id,也就是找到我们的 id为bt 的button 赋给 bt ;bt.setOnClickListener(new MyListener()); //这个就是让我们拿到的bt来执行setOnClickListener()“方法”,而传递的“参数”或者其他就是 new MyListener();既然new MyListener,那么肯定就有MyListenerclass MyListener implements View.OnClickListener{ }; //创建一个class,创建的时候,我们让软件为我们自己生成方法public void onClick( View v){ }EditText et=(EditText) findViewById(R.id.et_phonenumber); //如上,创建et得到命名id为et_phonenumberString phonenumber = et.getText().toString(); //定义一个String 类型变量 phonenumber ,将et 执行getText().toString() 得到的号码 赋值给phonenumberIntent intent =new Intent(); //Intent 意图,android里提供的一种东西,就像上面备注的告诉系统我“想要”打电话,我们就创建一个intentintent.setAction(Intent.ACTION_CALL); //设置意图对象要执行的动作:ACTION_CALL,打电话intent.setData(Uri.parse("tel:"+phonenumber)); //我们的意图是去拨打这个电话号码,此处就需要我们得到的phonenumber(电话号码),此处注意一下"tel:" 当拨打电话时,需要加的,而且 : 是英文冒号,在运行中因为一开始中文的,没有报错,但是运行过程中会直接停止运行。这种bug确实很难找到,所以我们一定要在中/英切换时注意startActivity(intent); //开始Activity五.设置权限,app—manifests—AndroidManifest.xml (android studio,eclipse中路径可能不一致)在里面的<manifest></manifest>里面(中间)添加权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>简单翻译:使用权限 安卓权限名=“安卓权限.通信”六.至此就完成了简单的拨号器,可以Run一下了,在Run中,如果虚拟机各种不流畅,可以使用手边的安卓手机来进行;效果
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析