Android 短信发送器
2016-06-29 19:04
399 查看
我编写这个小应用主要是练习Intent这个类的使用,使用Intent在Activity之间传输数据,处理数据,下面是我的源码:
项目源文件和安装包:点击打开链接
//MainActivity.java public class MainActivity extends Activity { private EditText et_number,et_content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_number = (EditText) findViewById(R.id.et_number); et_content = (EditText) findViewById(R.id.et_content); Intent intent = getIntent(); String number = intent.getStringExtra("number"); et_number.setText(number); } public void clickAdd(View v){ Intent intent = new Intent(this,ContactsActivity.class); // startActivity(intent); //当点击按钮开启了一个Activity,当开启的Activity关闭的时候 我想要这个Activity的数据,用下面这个方法 startActivityForResult(intent, 1); } //当我们启动的Activity关闭的时候调用 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode == 10){ String number = data.getStringExtra("number"); et_number.setText(number); }else if(resultCode == 20){ String content = data.getStringExtra("content"); et_content.setText(content); } //注意这里的空指针异常 // super.onActivityResult(requestCode, resultCode, data); } public void insert(View v){ Intent intent = new Intent(this,SmsTemplateActivity.class); startActivityForResult(intent, 2); } public void send(View v){ String number = et_number.getText().toString().trim(); String content = et_content.getText().toString().trim(); SmsManager smsmanager = SmsManager.getDefault(); //内容过多,分条发送 ArrayList<String> divide = smsmanager.divideMessage(content); for(String div : divide){ //scAddress:服务中心号码 smsmanager.sendTextMessage(number, null, div, null, null); } } }
ContactsActivity.java public class ContactsActivity extends Activity { private ListView lv; List<Person> lists ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); lv = (ListView) findViewById(R.id.lv); lists = new ArrayList<Person>(); Person person = new Person(); person.setName("Jack"); person.setNumber("110"); lists.add(person); Person person1 = new Person(); person1.setName("Tom"); person1.setNumber("119"); lists.add(person1); lv.setAdapter(new myAdater()); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(); intent.putExtra("number", lists.get(position).getNumber()); //把结果返回给调用者 setResult(10, intent); //关闭当前页面 finish(); } }); } class myAdater extends BaseAdapter{ @Override public int getCount() { return lists.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView == null){ holder = new ViewHolder(); convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, null); holder.mname = (TextView) convertView.findViewById(R.id.name); holder.mnumber = (TextView) convertView.findViewById(R.id.number); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.mname.setText(lists.get(position).getName()); holder.mnumber.setText(lists.get(position).getNumber()); return convertView; } } class ViewHolder{ TextView mname; TextView mnumber; } }
SmsTemplateActivity.java public class SmsTemplateActivity extends Activity { ListView templatelv; String objects[] = {"对不起,我在开会", "不好意思,我等下给你回电", "请稍后,我在吃饭"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sms_template); templatelv = (ListView) findViewById(R.id.templatelv); ArrayAdapter< String > adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.templateitem, objects); templatelv.setAdapter(adapter); templatelv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(); String content = objects[position]; intent.putExtra("content", content); setResult(20,intent); finish(); } }); } }
//Person.java public class Person { private String name; private String number; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } }
项目源文件和安装包:点击打开链接
相关文章推荐
- Android layer-list 布局实现多颜色按钮
- Android调用系统下载器DownloadManager
- Android之focusable的使用
- android 使用ViewPager开启应用时左右划动的界面
- android牛刀小试之计算器设计
- Android 全景视频播放器(VR视频播放器探索二)
- 一个Android Socket的例子(转)
- android Glide 去掉绿色背景(图片变绿解决方法)
- Android GestureDetector手势做控件滚动的效果
- Android图片大小处理
- android NDK开发 静态/动态注册 jni
- Android之继承Textview的EditText,CheckedTextView的介绍
- Android随心笔记三:XML布局文件的属性,src与background的简单区别
- android:打造万能通用适配器
- Android下的多线程通信机制
- Android多渠道打包
- Android进阶之自定义View实战(三)贝塞尔曲线应用
- Android 汉字转拼音
- Android ScrollView中镶嵌GridView
- Android属性动画学习笔记(一)