package com.itheima74.smssend; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; /** * 短信发送器小案例 * 1.点击"+"按钮,跳转联系人页面 * 2.点击联系人条目,携带联系人号码返回并设置给et_phone * 3.点击"插入模板"按钮,跳转短信模板页面 * 4.点击模板条目,携带短信内容返回并设置给et_content * 5.点击"发送"按钮,发送此条短信 */ public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText et_phone; private EditText et_content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_phone = (EditText) findViewById(R.id.et_phone); et_content = (EditText) findViewById(R.id.et_content); Button bt_add = (Button) findViewById(R.id.bt_add); Button bt_template = (Button) findViewById(R.id.bt_template); Button bt_send = (Button) findViewById(R.id.bt_send); bt_add.setOnClickListener(this); bt_template.setOnClickListener(this); bt_send.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_add: Intent intent = new Intent(this, ContactActivity.class); startActivityForResult(intent, 10); break; case R.id.bt_template: Intent intent2 = new Intent(this, TemplateActivity.class); startActivityForResult(intent2, 100); break; case R.id.bt_send: // 发送短信 String phone = et_phone.getText().toString().trim(); String content = et_content.getText().toString().trim(); if (phone.isEmpty() || content.isEmpty()) { Toast.makeText(this, "请输入内容!", Toast.LENGTH_SHORT).show(); return; } SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phone, null, content, null, null); Toast.makeText(this, "发送成功", Toast.LENGTH_SHORT).show(); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 如果销毁的是+按钮,则回传phone,设置给Edittext if (requestCode == 10 && resultCode == 20) { String phone = data.getStringExtra("phone"); et_phone.setText(phone); } // 如果是模板回传信息 if (requestCode == 100 && resultCode == 200) { String template = data.getStringExtra("template"); et_content.setText(template); } } } package com.itheima74.smssend; /** * Created by My on 2016/11/8. */ class ContactBean { public String name; String phone; } package com.itheima74.smssend; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; /** * Created by My on 2016/11/8. */ public class ContactActivity extends AppCompatActivity { private ListView lv; private ArrayList<ContactBean> mArrayList; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); lv = (ListView) findViewById(R.id.lv); // 初始化数据源 mArrayList = new ArrayList<>(); ContactBean contactBean; for (int i = 0; i < 20; i++) { contactBean = new ContactBean(); contactBean.name = "zhangsan" + i; if (i < 10) { contactBean.phone = "1380000000" + i; } else { contactBean.phone = "138000000" + i; } mArrayList.add(contactBean); } // 绑定数据适配器 lv.setAdapter(new MyAdapter()); // 设置listview条目的点击事件,当条目点击后,将号码回传给主页面 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 拿到号码 ContactBean bean = mArrayList.get(position); String phone = bean.phone; Intent intent = getIntent(); intent.putExtra("phone", phone); setResult(20, intent); finish(); } }); } private class MyAdapter extends BaseAdapter { @Override public int getCount() { return mArrayList.size(); } @Override public ContactBean getItem(int position) { return mArrayList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = View.inflate(getApplicationContext(), R.layout.contact_listview_item, null); holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name); holder.tv_phone = (TextView) convertView.findViewById(R.id.tv_phone); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ContactBean item = getItem(position); holder.tv_name.setText(item.name); holder.tv_phone.setText(item.phone); return convertView; } } private static class ViewHolder { TextView tv_name; TextView tv_phone; } } package com.itheima74.smssend; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; /** * Created by My on 2016/11/8. */ public class TemplateActivity extends AppCompatActivity { private String[] mObjects; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_template); ListView lv = (ListView) findViewById(R.id.lv); // 初始化数据源 mObjects = new String[]{"我在吃饭,请稍后联系...", "我在上课,请稍后联系...", "我在打代码,请稍后联系...", "我在睡觉,请稍后联系...", "我在开车,请稍后联系..."}; // 需要一个数据适配器 ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mObjects); // 绑定数据适配器 lv.setAdapter(adapter); // 设置listview条目的点击事件,当条目点击后,回传短信内容给主页面 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 拿到条目短信内容 String template = mObjects[position]; Intent intent = getIntent(); intent.putExtra("template", template); setResult(200, intent); finish(); } }); } }