声明:学习的书籍《Android应用开发揭秘》,这里记录学习该书籍的日志,引用的相关代码与总结描述,没有商业的用途,完全是自我学习的一个记录,刚刚学习不可避免会出现很多问题,若是有错误还请大家多多批评。
继续基础控件的学习;
一、提示Toast控件
该控件在Android中,主要用于显示信息。比如:当退出程序时,用来提示玩家“需要更新”等信息,在输入框中输入文本时,提示玩家“最多能输入10字符”等。
实例分析:用显示当收到短信息的时候,使用Toast控件显示发送短信的内容。
【关注点】:1. Toast控件的使用;2. 如何发送短信并监控短信的收发。
【遇到问题】:
1. 在打开模拟器运行程序时,报:emulator-5554 disconnected! Cancelling……错误。即连接不上模拟器
遇到这个问题,在google里找了一下,主要由三个解决方法
1. emulator -avd -wipe-data
2. reset abd
3. restarting the eclipse again
解决方法1:【当前方法成功解决我的问题】
在eclipse里面改变一下你run的时候的设置就好了.
右点你的工程后run里面有一个run configrations,
在里面有一个选项每次运行都檫掉记录 wipe....的,选上就好了
emulator -wipe-data
或者选择“wipe out user data”
该解决方法参考网上:http://ophone8.com/thread-4046-1-1.html
同样;
http://androidforums.com/application-development/5398-android-help-emulator-5554-disconnected.html
First, close (or force close) your current AVD.
Open Android SDK and AVD Manager, choose your virtual device, click "Start..." then check the "wipe user data" mode then click "Launch".
问题出现原因,分析是手动关掉AVD以后出现的,AVD没启动完你就关掉了,当然出现“连接失败”(disconnected!),然后就取消中....
实例重要源码:
1. 若是想收发短信,必须创建一个继承BroadcastReceiver的类,重写其onReceive方法,当收到短信时就会触发该方法。
以上是专门用于处理短信接收的触发类,但是需要配置成监听服务
<uses-permission android:name="android.permission.RECEIVE_SMS"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".Examples_04_05Activity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:enabled="true" android:name="SMSReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver> </application>程序在运行时,需要模拟发送短信,切换到DDMS模式,如下图:
运行效果如下:左图为程序启动效果,右图为发送了短信之后的效果
一、编辑框EditText控件
针对EditText控件,可以为其设置事件监听setOnKeyListener,并实现onKey方法,当用户按键时便会触发这个事件,从而可以通过getText()获取控件里面的内容。
用户没有输入数据的情况下,使用EditText.setHint(“请输入账号!”);来实现信息的提示。
二、 单项选择(RadioGroup,RadioButton)
要是实现一个单选按钮组的效果,必须使用RadioGroup与RadioButton组合使用,如:
<RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_x="3px" android:layout_y="54px" > <RadioButton android:id="@+id/RadioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton1" /> <RadioButton android:id="@+id/RadioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/RadioButton2" /> </RadioGroup>界面上选择按钮由RadioButton来控制,单选按钮组的答案由RadioGroup来控制,在定义RadioGroup时,在监听RadioGroup的setOnCheckedChangeListener事件时:
/* 设置事件监听 */ m_RadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId){ // TODO Auto-generated method stub if (checkedId == m_Radio2.getId()){ DisplayToast("正确答案:" + m_Radio2.getText() + ",恭喜你,回答正确!"); }else{ DisplayToast("请注意,回答错误!"); } });今天学习到P69页,继续加油