package com.lidaochen.test; import android.content.Intent; import android.os.Bundle; import android.provider.Telephony; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.telephony.SmsManager; import android.view.View; import android.widget.EditText; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private EditText et_number; private EditText et_content; // 當咱們開啓的Activity頁面關閉的時候,就調用下面這個方法 @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { /* if (requestCode == 1) { // 表明請求ContactActivity這個頁面的數據 String phone = data.getStringExtra("phone"); et_number.setText(phone); } else if(requestCode == 2) { // 表明請求SmsTemplateActivity這個頁面的數據 String smsContent = data.getStringExtra("smsContent"); et_content.setText(smsContent); }*/ if (resultCode == 10) { // 說明數據是從ContactActivity頁面返回的 String phone = data.getStringExtra("phone"); et_number.setText(phone); } else if(resultCode == 20) { // 說明數據是從SmsTemplateActivity頁面返回的 String smsContent = data.getStringExtra("smsContent"); et_content.setText(smsContent); } super.onActivityResult(requestCode, resultCode, data); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 找到EditText控件 et_number = (EditText)findViewById(R.id.et_number); et_content = (EditText)findViewById(R.id.et_content); } // 點擊按鈕 跳轉到ContactActivity頁面 public void add(View v) { Intent intent = new Intent(this, ContactActivity.class); // startActivity(intent); // 若是點擊按鈕 開啓了另一個Activity,而且當開啓的這個Activity關閉的時候,我想要這個開啓Activity的數據,用下面的方法開啓Activity startActivityForResult(intent, 1); } // 點擊按鈕 跳轉到SmsTemplateActivity頁面 public void insertsms(View v) { Intent intent = new Intent(this, SmsTemplateActivity.class); startActivityForResult(intent, 2); // startActivity(intent); } public void send(View v) { // 獲取發送短信的內容 String number = et_number.getText().toString().trim(); String content = et_content.getText().toString().trim(); // 獲取到SmsManager的實例 SmsManager smsManager = SmsManager.getDefault(); ArrayList<String> divideMessage = smsManager.divideMessage(content); for (String div : divideMessage) { /** * destinationAddress 發送給誰 * scAddress 服務中心號碼 * * text 要發送的內容 */ smsManager.sendTextMessage(number, null, div, null, null); } } }
package com.lidaochen.test; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; 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; import java.util.List; public class ContactActivity extends AppCompatActivity { private List<Person> lists; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); // 找到ListView控件 ListView lv = (ListView)findViewById(R.id.lv); // 準備ListView要顯示的數據,這裏模擬點假的數據 lists = new ArrayList<Person>(); for (int i = 0; i < 20; i++) { Person p = new Person(); p.setName("張三" + i); p.setPhone("1100" + i); lists.add(p); } // 展現數據 lv.setAdapter(new MyAdaper()); // 給ListView設置點擊事件 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 獲取我點中的條目的數據 String phone = lists.get(position).getPhone(); // 把數據返回給調用者 Intent intent = new Intent(); intent.putExtra("phone", phone); // 把結果返回給調用者 setResult(10, intent); // 關閉當前頁面 finish(); } }); } private class MyAdaper extends BaseAdapter { @Override public int getCount() { return lists.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { view = View.inflate(getApplicationContext(), R.layout.contact_item, null); } else { view = convertView; } // 找到咱們在item中定義的控件,用來顯示數據 TextView tv_name = (TextView)view.findViewById(R.id.tv_name); TextView tv_phone = (TextView)view.findViewById(R.id.tv_phone); // 展現數據 tv_name.setText(lists.get(position).getName()); tv_phone.setText(lists.get(position).getPhone()); return view; } } }
package com.lidaochen.test; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; public class SmsTemplateActivity extends AppCompatActivity { String[] objects = {"我在吃飯,請稍後聯繫","我在開會,請稍後聯繫","我在上課,請稍後聯繫","我在打代碼,請稍後聯繫","我在約會,請稍後聯繫"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sms_template); // 找到ListView控件 ListView lv = (ListView)findViewById(R.id.lv); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.smstemplate_item, objects); // 顯示數據 lv.setAdapter(adapter); // 設置ListView的條目點擊事件 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 取出點擊條目的數據 String smsContent = objects[position]; // 把smsContent返回調用者 Intent intent = new Intent(); intent.putExtra("smsContent", smsContent); setResult(20, intent); // 關閉頁面 finish(); } }); } }
smstemplate_item.xmljava
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:textColor="#00ff5d" android:textAppearance="?android:attr/textAppearanceLarge" />