Android心得3--拨号器

1. 一点小感悟

 这两天编程天天出现空指针异常、找不到活动什么的异常,总之是各种不在编译执行时报错的异常,而在编写出的apk应用程序上报错,我就纳闷了,java好歹还给提个错,Android总是默默无闻的,这点让我很郁闷,虽然Android也有专门控制台输出给提示各种结果吧!!但是提示的总是一泻千里,让编程者乍一看,丈二和尚摸不着头脑,经老师的点拨终于悟透了其中的奥妙,在这里与大家分享一下。看见一大推错误不要慌。分析思路为:先从错误第一行看起,一般都找“fatal exception:main”(致命的意外),然后看他的下一行:比如一个拨号器里的错误:“android.content.ActivityNotFoundException:no Actiivityfound to handle Intent{act=android,intent.action.All_APPsdat=tel:xxx-xxx-xxxx}

这就找到了错误的根源,看一下他的提示不难发现这是Activity活动没有被发现的异常,返回源代码可以找出这一行:Intentintent =new Intent(Intent.ACTION_ALL_APPS,Uri.parse("tel"+et.toString()));不难发现这里的Intent. .ACTION_ALL_APPS打错代码了,拨号器嘛,当然是Intent.ACTION_CALL了,最重要也是最容易被忽略的一个问题是:”tel:”,记住tel后面有冒号,千万不能忘了加,不加会一直提醒你Activity没有被创建。所以问题到这里已经解决。

综上所述,IT行业考验的就是一个细心和耐心,大部分人一看编写的时候没报错,就没有了找错的耐心了,当你有了找错的思路,再静下心来,仔细看看Android控制台提示的错误,回头看一下相应提示行的代码,问题其实很好解决,不好解决的只有你的心态。

2.通过这几天的学习,列举一些Android错误:

failed to find provider info forcom.google.settings未能找到信息,com.google.settings供应商

atdalvik.system.NativeStart.main(Native Method)本机主要方法

Unable to get view server version fromdevice emulator-5554无法获得视图服务器版本从设备模拟器- 5554

Unable to get view server protocolversion from device emulator-5554无法获得视图服务器协议版从设备模拟器- 5554)

no Activity found to handle Intent没有活动发现处理的意图

Unable to load the window list from device emulator-5554无法载入窗口列表从设备模拟器- 5554

3.下面把一个简单的拨号器代码写一下。

下图为效果图:

                                

packagecn.csdn.hr.activity;

 

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.net.Uri;

importandroid.os.Bundle;

importandroid.text.Editable;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.EditText;

publicclass CallPhoneActivity extends Activity {

   /** Called when the activity is firstcreated. */

   @Override

   public void onCreate(BundlesavedInstanceState) {

      super.onCreate(savedInstanceState);

      // 设置显示的视图界面

      setContentView(R.layout.main);

      // 获取该布局文件中相应的组件

      Button callPhoneBtn = (Button)findViewById(R.id.callPhoneBtn);

      // 为按钮注册点击事件

callPhoneBtn.setOnClickListener(newView.OnClickListener() {

        @Override

        public void onClick(View v) {

           //获取输入框|可编辑框对象,进行拨号设置

           EditText editText = (EditText)findViewById(R.id.editCallPhone);

           // 获取输入的电话号码

           Editable editable =editText.getText();  

           //设置拨号意图

           Intent intent = newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+editable.toString()));

// “tel:"+editable.toString()”这是固定的格式,拨号设置时必须加上“tel:”前缀;

           //执行意图

           startActivity(intent);

        }

      });

   }

}

4.布局

LinearLayout(线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)

布局还分为为水平布局(horizontal)和垂直布局(vertical)。

5.打开Android模拟器时,出现无信号,拔打电话或发短信时,提示“尚未注册网络”错误信息的解决方案如下。

l      场景一:你的电脑没有连接上互联网,同时也没有在局域网。

  解决办法:右键点击网上邻居,选择"属性",在网络连接窗口中右键点击"本地连接",选择"属性",设置TCP/IP属性如下:

     IP地址:192.168.1.100

     子网掩码:255.255.255.0

     默认网关:192.168.1.100

     首选DNS服务器:192.168.1.100

l      场景二:你的电脑没有连接上互联网,但在局域网。

  解决办法:右键点击网上邻居,选择"属性",在网络连接窗口中右键点击"本地连接",选择"属性",设置TCP/IP属性如下:

     IP地址:设置成你所在局域网的IP,如:192.168.1.100

     子网掩码:设置成你所在局域网的掩码,如:255.255.255.0

     默认网关:设置成你所在局域网的网关,一般网关的IP格式为:*.*.*.1,如:192.168.1.1

     首选DNS服务器:设置成你所在局域网的路由器IP,一般路由器的IP格式为:*.*.*.1,如:192.168.1.1

l      最后一种解决方案是:让你的电脑连接上互联网。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值