思路:
一、MainActivity中
写一个OnCreate和OnDestroy方法
OnCreate方法:获取信息和联系人的文本对象,创建SharedPreferences的文件对象,并将文件里面的临时存的联系人和信息回显到EditText文本框中
OnDestroy方法:当销毁这个程序的进程时,将EditText中信息和联系人的内容存放在SharedPreferences中
发信息的点击事件:创建意图,由MainActivity跳转到SelectSmsContent类中,开启新的Acitivty并且获取返回值,注意要编码。
选择联系人的点击事件:跳转到SelectContact类中,并获取返回值。
重写onActivityResult方法:判断如果requestcode为发信息则先获取信息内容并设置到信息文本框中,如果为联系人的请求码时则获取联系人并设置到联系人文本框中
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText et_message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_message = (EditText) findViewById(R.id.et_message);
}
public void selectSmsContent(View view) {
Intent intent = new Intent(this, SmsListActivity.class);
// startActivity(intent);
// 开启新的Activity并且获取返回值
startActivityForResult(intent, 1);
}
// 开启新的界面 选择联系人
public void selectContact(View view) {
Intent intent = new Intent(this, ContactListActivity.class);
// startActivity(intent);
// 开启新的Activity并且获取返回值
startActivityForResult(intent, 2);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
System.out.println("我们开启的新的选择短信的界面被关闭了,结果数据返回到这里");
if (data != null) {
String message = data.getStringExtra("message");
et_message.setText(message);
}
}else if(requestCode == 2) {
System.out.println("我们开启的新的选择联系人界面被关闭了,结果数据返回到这里");
}
super.onActivityResult(requestCode, resultCode, data);
}
}
二、ContactListActivity中:
定义一个存有联系人的字符串数组,重写onCreate方法,关系ListView控件,设置listview的适配器,传人一个数组适配器,适配器参数为item和联系人数组,设置listview的条目点击监听事件,获取指定位置的联系人,创建一个空意图,通过键值对的方式将信息的内容放入意图中,设置返回意图的结果并传人意图,关闭当前页面。
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 ContactListActivity extends Activity {
private ListView lv_contact;
private String[] objects = {
"13512340000",
"13512340001",
"13512340002",
"13512340003",
"13512340004",
"13512340005",
"13512340006",
};
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contactlist);
lv_contact = (ListView) findViewById(R.id.lv_contact);
lv_contact.setAdapter(new ArrayAdapter<String>(this, R.layout.item, objects));
lv_contact.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String phone = objects[position];
Intent data = new Intent();
data.putExtra("phone", phone);
setResult(0, data);
finish();
}
});
}
}
三、SmsListActivity类中:
跟联系人类中的同样的思路
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 SmsListActivity extends Activity {
private ListView lv;
private String[] smsMessages={
"春节的欢聚已分开,鞭炮声声已渐远。各自奔往工作地,踌躇满志加紧干。同事见面问新年,祝福的话语说不完。亲人的嘱托在耳畔,勤奋工作莫迟延。愿你年后心情好,事业更上一层楼!",
"欢快的歌声尽情飘,温暖的春风暖心潮。万千的喜气多热闹,吉祥的日子要来到。发条短信问个好,财源广进吉星照。万事顺利开怀笑,羊年幸福乐逍遥。",
"心情预报:今夜到明早想你,预计下午转为很想你,受此情绪影响,傍晚将转为暴想,此类天气将持续到见你为止。",
"世界如此忙碌,用心的人就会幸福;想你的脸,心里就温暖;想你的嘴,笑容跟着灿烂!随着新年的到来,关心你的人要跟你说声:新年快乐!",
"羊年到,身体很重要,应酬拒不掉,少喝酒多吃菜,表示心意就算了;祝愿老板身体好,越过越开心,财富滚滚来,生活越来越美好。",
"新年到了,衷心祝福你。祝你年年圆满如意,月月事事顺心,日日喜悦无忧,时时高兴欢喜,刻刻充满朝气!",
"勇攀高峰不怕险,开辟新径铸辉煌。勤奋创业走新道,学做银羊敢闯关。羊年要走阳关道,排除万难创业路。艰苦奋斗能胜天,幸福生活如意添。愿你羊年心想事业成!"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_smslist);
lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(new ArrayAdapter<String>(this, R.layout.item, smsMessages));
lv.setOnItemClickListener(new OnItemClickListener() {
//当listview的条目被点击的时候调用的方法
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
System.out.println("position:"+position);
String message = smsMessages[position];
//把当前界面的数据,返回给开启我的界面.
Intent data = new Intent();
data.putExtra("message", message);
setResult(0, data);
//把当前界面关闭
finish();
}
});
}
}
四、写布局文件
①activity_main界面布局
②activity_contactlist写ListView布局
③activity_smslist写ListView布局
④item布局
五、注意每次创建一个activity的时候必须中清单文件中注册