android 短信助手demo
关于意图Intent:
显式意图:必须指定要激活的组件的完整包名和类名(应用程序之间耦合在一起)
一般激活自己应用的组件的时候采用显式意图
隐式意图:只需要指定动作和数据就可以(好处是应用程序之间没有耦合)
激活别人写的应用,不需要关心对方的包名和类名
此处使用的是显示意图
清单文件中中需要添加以下内容:
<activity android:name="com.zhangbz.smshelper.ListSmsActivity"></activity>
<activity android:name="com.zhangbz.smshelper.ListNumberActivity"></activity>
package com.zhangbz.smshelper; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private EditText et_content;
private EditText et_number; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); et_content = (EditText) findViewById(R.id.et_content);
et_number = (EditText) findViewById(R.id.et_number);
}
/**
* 选择短信按钮方法
* @param v
*/
public void selectSms(View v) {
Intent intent = new Intent(this, ListSmsActivity.class);
//开启一个新的界面,并且获取界面的返回值
//startActivity(intent);
startActivityForResult(intent, 0);
}
/**
* 选择电话号码按钮fangfa
* @param v
*/
public void selectNumber(View v) {
Intent intent = new Intent(this, ListNumberActivity.class);
startActivityForResult(intent, 1); } /**
* 接收返回的结果
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(data != null) {
String smsinfo = data.getStringExtra("smsinfo");
if(requestCode == 0){ //标示不同的数据来源
et_content.setText(smsinfo);
} else if(requestCode == 1){
et_number.setText(smsinfo);
}
}
} /**
* 发送短信方法
* @param v
*/
public void sendSms(View v) {
String content = et_content.getText().toString().trim();
String number = et_number.getText().toString().trim();
SmsManager.getDefault().sendTextMessage(number, null, content, null, null);
Toast.makeText(this, "发送成功", 0).show(); }
}
以ListSmsActivity.java为例,ListNumberActivity.java同。
package com.zhangbz.smshelper; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView; public class ListSmsActivity extends Activity { private ListView lv;
private String[] objects = {"sdfsfafafasf","sdffdfafafafasfsa" ,"sdfhjkfhlkjfhfjflfhjla", "sdfja;lkfjfkajf;afjsd;fjasdf;sadfjklsad"}; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
//ListView
lv = (ListView) findViewById(R.id.lv);
// 适配器
lv.setAdapter(new ArrayAdapter<String>(this, R.layout.sms_item, R.id.tv_info, objects));
//设置点击监听方法
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String smsinfo = objects[position];
Intent data = new Intent();
data.putExtra("smsinfo", smsinfo);
//设置数据
setResult(0, data);
//关闭掉当前的activity,并且回传数据onActivityResult()
finish();
}
});
}
}
源码链接
android 短信助手demo的更多相关文章
- Android(java)学习笔记222:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例的优化:请求码和结果码)
1.开启界面获取返回值 (1)采用一种特殊的方式开启Activity: startActivityForResult(intent , 0): (2)在被开启的Activi ...
- Android(java)学习笔记221:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例)
1.首先我们看看下面这个需求: 这里我们在A界面上,点击这个按钮"选择要发送的短信",开启B界面上获取网络上各种短信祝福语,然后B界面会把这些网络祝福语短信发送给A界面到" ...
- Android(java)学习笔记165:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例的优化:请求码和结果码)
1.开启界面获取返回值 (1)采用一种特殊的方式开启Activity: startActivityForResult(intent , 0): (2)在被开启的Activi ...
- Android(java)学习笔记164:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例)
1.首先我们看看下面这个需求: 这里我们在A界面上,点击这个按钮"选择要发送的短信",开启B界面上获取网络上各种短信祝福语,然后B界面会把这些网络祝福语短信发送给A界面到" ...
- 2018阿里云短信发送DEMO接入简单实例
以下更新2018-04-2309:57:54 后续不再更新, 基本类: app/SignatureHelper.php <?php namespace aliyun_mns; /** * 签名助 ...
- Android 短信的还原
上篇文章讲到<Android 短信的备份>,本文主要实现Android 短信的还原,即是将一条 布局文件: <RelativeLayout xmlns:android="h ...
- PHP接入阿里云市场 阿里短信服务DEMO
阿里短信服务:支持三大运营商短信.智能管道等优质能力,产品特点:3秒可达.99%到达率.超低资费. 使用阿里短信服务步骤: 1.购买服务 到https://market.aliyun.com/prod ...
- Android短信监听实现,及Android4.4之后短信机制变更
前阵子公司有一个项目,简单的监听短信应用,功能只有如下两个: 1.监听短信并获取短信内容上传服务器: 2.从服务器获取短信内容,发送出去 按照传统的思路,监听短信我们有两种方式:第一种是使用广播 ...
- android短信验证
短信验证demo http://download.csdn.net/detail/crazy1235/8315279#comment 使用MOB平台开发,用法详见: http://blog.csdn. ...
随机推荐
- DDD:关于模型的合法性,Entity.IsValid()合理吗?
背景 见过很多框架(包括我自己的)都会在实体的定义中包含一个IsValid()方法,用来判断实体的合法性,是否应该这样设计呢?本文就这个问题介绍一点想法,希望大家多批评. 实体能否处于“非法”状态? ...
- HMM 自学教程(三)隐藏模式
本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩 ...
- JS魔法堂:doctype我们应该了解的基础知识
一.前言 什么是doctype?其实我们一直使用,却很少停下来看清楚它到底是什么,对网页有什么作用.本篇将和大家一起探讨那个默默无闻的doctype吧! 二.什么是doctype doctype或DT ...
- Spring基础—— 在 Spring Config 中使用外部属性文件
一.在 Spring Config 文件中配置 Bean 时,有时候需要在 Bean 的配置里添加 系统部署的细节信息, 如文件路径,数据源配置信息.而这些部署细节实际上需要在配置文件外部来定义. 二 ...
- 准备.Net转前端开发-WPF界面框架那些事,搭建基础框架
题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开 ...
- 【EF 译文系列】模型和数据库连接
原文链接:Connections and Models 本篇文章主要包括 Entity Framework 是如何选择数据库进行连接,以及我们如何去改变它的连接.无论是通过 Code First 还 ...
- C# WinFrom 跨线程访问控件
1.跨线程访问控件委托和类的定义 using System; using System.Windows.Forms; namespace ahwildlife.Utils { /// <summ ...
- 使用jQueryUI的dialog实现一个提示功能
信息提示给用户是程序开发中,最常用的一个功能. Insus.NET使用jQueryUI的dialog来实现一个,可以定义标题,对话框的大小等. 在ASP.NET MVC环境下来演示吧. 在Octobe ...
- 别误用IsDigit与IsNumber函数
1.起因 最近发现程序中有一段控制TextBox数字输入的代码,相信大家都不会太陌生,如下: void int_KeyPress(object sender, KeyPressEventArgs e) ...
- YAML初探
http://www.cnblogs.com/chwkai/archive/2009/03/01/249924.html 1 概念YAML是一种人们可以轻松阅读的数据序列化格式,并且它非常适合对动态编 ...