您的位置:首页 > 移动开发 > Android开发

<安卓那点事>写一个简单的电话拨号器

2016-01-14 09:30 561 查看
整个过程也是在不断的学习,在初步入门,跟着学习了一个简单的电话拨号器,比较能够了解activity是软件的门面,而且按钮是从一个动作或者界面或者activity到达另一个的方法,以及接触了监听组件的动作,读取用户输入数据等。(上面的话,可能并没有说的很清楚,一些名词可能也是不对,多见谅)首先是建立一个新的project,可以命名为bohaoqi,简单易懂没内涵,或者叫做phonecall也可以,拨号器(dialler)。(然后,我发现,其实用自己的安卓手机进行开发,可能要比模拟器更好一些)整个软件就一个界面,我们只需要一个activity就可以,整体大概是这样的。一.文本“请输入电话号码!”<TextView  /> 文本标签(activity_main.xml)如下
<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中,如果虚拟机各种不流畅,可以使用手边的安卓手机来进行;效果在整个过程中,可能用了一些不正规的语句,请大家见谅,还有粘贴的代码片段基本保证100%正确,下方解释中可能在 ; () { } 中有缺失或者中文输入,请注意。如果有任何建议意见都可以留言或私信。感谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息