1. 一般我们第一步都是先创建这个main.xml布局文件,这是良好的习惯:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/input_number" />//android:text下面都是类似的,都是在string.xml下创建字符资源,然后利用@string/xxx <EditText
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="1"
android:numeric="integer" >
</EditText> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/input_content" /> <EditText
android:id="@+id/et_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="4" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="send"
android:text="@string/send" /> </LinearLayout>

这个布局文件的效果图如下:

下面我们进入源代码:

 package cn.itcast.sms;

 import java.util.ArrayList;

 import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager; //gsm cdma 3g
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private EditText mEtNumber;
private EditText mEtContent; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main6);
// mEtContent = (EditText) this.findViewById(R.id.et_content);
// mEtNumber = (EditText) this.findViewById(R.id.et_number); } public void send(View view){
String number = mEtNumber.getText().toString().trim();
String content = mEtContent.getText().toString().trim();
if("".equals(number)||"".equals(content)){
//提示用户 短信的接收人 或者 内容不能为空
// 上下文 其实就是一个全局的对象
Toast.makeText(this, R.string.error_message, Toast.LENGTH_LONG).show();
return ;
}else{
Log.i(TAG,"发送短信 接受者"+number+" 内容"+content);
SmsManager smsmanager = SmsManager.getDefault();
//sentIntent, deliveryIntent延期的意图 ,
// sentintent 发送报告
// deliveryIntent 送达报告
//smsmanager.sendTextMessage(number, null, content, null, null); //一条短信最大的文本长度 是多少 ?
// 中文 70 汉字 英文 160字符
ArrayList<String> messages = smsmanager.divideMessage(content);
for(String message : messages){
smsmanager.sendTextMessage(number, null, message, null, null);
}
}
}
}
备注:   SmsManager smsmanager = SmsManager.getDefault();
如果单单就不想被其他实例化:那就直接在这个构造函数中private限定。但是那样你自己也用不了。
单例模式 只可以创建一个实例,外面的类调用的话只能是这个类已经创建好的实例。代码给你看看: public class Foo {
private EagerSingleton() { } //私有的构造函数 外面不能创建新的实例
private static Foo foo = new Foo(); //类中自己创建一个实例
public static Foo getInstance(){//对外面调用你的实例留个方法 return foo;
}
}
 

Android(java)学习笔记86:案例短信发送器的更多相关文章

  1. Android(java)学习笔记69:短信发送器

    1. 一般我们第一步都是先创建这个main.xml布局文件,这是良好的习惯: <?xml version="1.0" encoding="utf-8"?& ...

  2. Android学习笔记_2_发送短信

    1.首先需要在AndroidManifest.xml文件中加入发送短信的权限 <uses-permission android:name="android.permission.SEN ...

  3. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...

  4. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  5. Android:日常学习笔记(2)——分析第一个Android应用程序

    Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...

  6. Java学习笔记之log4j与commons-logging<转>

    Java学习笔记之log4j与commons-logging<转> (2011-02-16 11:10:46) 转载▼ 标签: 杂谈 分类: 技术学习之其他 Logger来自log4j自己 ...

  7. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  8. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  9. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

随机推荐

  1. 【Python】一个python实例:给重要的文件创建备份.摘自crossin-python简明教程

    问题:写一个可以为所有重要文件创建备份的程序 考虑:源路径和目标路径各是什么;所有重要文件-有哪些;备份文件格式是什么;定期备份的话,备份文件名称如何规定等等.(ps,我自己只想到一个路径和名称) 程 ...

  2. 高质量、处于持续更新的R包

    本文在Creative Commons许可证下发布 自由软件的问题是开发人员没有稳定的资金来源支持,可能更新上做不到持续.经过考证和圈内朋友的帮助,现在把R包中高质量.持续更新的跟大数据事业相关的R包 ...

  3. uva 11275 3D Triangles

    题意:三维空间中,给出两个三角形的左边,问是否相交. 面积法判断点在三角形内: #include<cstdio> #include<cmath> #include<cst ...

  4. java web工程发布以及解决tomcat闪退

    1.tomcat闪退 a.环境变量错误 startup.bat最后假如PAUSE进入调试状态,双击startup.bat,可以看到错误,根据错误提示设置相应的环境变量,JAVA_HOME等. b.ec ...

  5. Linux内核,文件系统移植过程中出现的一些问题与解决办法

    1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行. ...

  6. svn文件清理Bat脚本

    @echo On@Rem C:\Users\caoxiancc\Desktop\Ueditor-thinkphp-master\Ueditor --svn跟路径@PROMPT [Com] @for / ...

  7. BNUOJ-26586 Simon the Spider 最小生成树+枚举

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26586 题意:给一个图,每条边有一个权值.要你求选择一棵树,权值和为sum,然后在树上选择 ...

  8. 局域网Internet的共享

    局域网接入Internet,之后,在服务器安装共享代理软件,可以使客户机通过代理软件接入Internet. 局域网接入Internet 而目前几乎所有的浏览器.下载软件.信件收发软件都支持代理服务器. ...

  9. ListView inside a ScrollView

    ScrollView里面放ListView, ListView无法展开的解决方法 http://stackoverflow.com/questions/18367522/android-list-vi ...

  10. Go: using a pointer to array

    下面的不是指针指向数组,而是指针指向Slice I'm having a little play with google's Go language, and I've run into someth ...