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. DbHelper and OracleHelper

    1 连接Sql Server的ConnectionString: Data Source=.;Initial Catalog=ViewVideo;User ID=sa;Password=XXXXXX; ...

  2. 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

    版本:v1.2   Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...

  3. 【Python】Python-用大写字母打印你的名字

    与孩子一起编程,有个作业题:用大写字母打印你的名字. CCCC A RRRRR C C A A R R C A A R R C AAAAAAA RRRRR C C A A R R CCCC A A R ...

  4. js实现收缩菜单效果

    废话不多说,直接上代码: 有注释 <head> <title></title> <style type="text/css"> di ...

  5. python 网络编程(三)---TCP 服务器端客户端实现

    客户端 客户端主要有4个步骤: 1)创建一个socket以连接服务器. socket = socket.socket(family, type),family参数代表地址家族,可为AF_INET(包括 ...

  6. Ubuntu安装JDK1.6

    1.下载JDK 网址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-4 ...

  7. C#中使用DLL文件

    首先,我们需要在C++程序中导出DLL文件.我使用的是Visual Studio开发,把项目"属性"中的“配置类型”改为"动态库dll",然后添加如下导出代码: ...

  8. 教程-最全ASCII 码对照表

    第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符.归位字符). 第二部分是由 20H 到 7FH 共 ...

  9. 也谈SSO,一个简单实用的单点登录Demo

    关于SSO(单点登录),百度百科解释如下 : “SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要 ...

  10. Widget only supports Widgets as children

    Widget only supports Widgets as children https://www.baidu.com/s?wd=Widget%20only%20supports%20Widge ...