运用了intent的跳转界面传递数据。
activitty_main:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.zhangli.smssender.MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13dip"
android:hint="请输入或者选择联系人"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="选择"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_number2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13dip"
android:hint="请输入或者选择第二个联系人"/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="选择"/>
</RelativeLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="请输入内容"
android:inputType="textMultiLine"
android:minLines="8"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送"/>
</LinearLayout>
list_activity:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_person"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
person_item:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="姓名:"
android:textColor="#000000"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="电话:"
android:textColor="#99000000"
android:textSize="14sp" />
</LinearLayout>
PersonInfo:
package com.zhangli.PersontInfo;
public class PersonInfo {
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;
}
}
GetPerson:
package com.zhangli.smssender;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import com.zhangli.PersontInfo.PersonInfo;
import java.util.ArrayList;
import java.util.List;
/**
* 返回系统所有的联系人
* @author Administrator
*
*/
public class GetPerson {
public static List<PersonInfo> getPersonInfo(Context context) {
List<PersonInfo> personInfos = new ArrayList<PersonInfo>();
// 查询raw_contact表获取联系人的id
ContentResolver resolver = context.getContentResolver();
// 获取raw_contact表对应的uri
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");
Cursor cursor = resolver.query(uri, null, null, null, null);
while (cursor.moveToNext()) {
String id = cursor.getString(cursor.getColumnIndex("contact_id"));
if (id != null) {
System.out.println(id);
Cursor datacursor = resolver.query(dataUri, null, "raw_contact_id=?", new String[] { id }, null);
PersonInfo personInfo = new PersonInfo();
while (datacursor.moveToNext()) {
String data = datacursor.getString(datacursor.getColumnIndex("data1"));
String mimetype = datacursor.getString(datacursor.getColumnIndex("mimetype"));
if ("vnd.android.cursor.item/name".equals(mimetype)) {
personInfo.setName(data);
} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
personInfo.setNumber(data);
}
}
datacursor.close();
personInfos.add(personInfo);
}
}
cursor.close();
return personInfos;
}
}
MainActivity:
package com.zhangli.smssender;
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 {
Activity activity;
private EditText et_number;
private EditText et_number2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = this;
et_number = (EditText) findViewById(R.id.et_number);
et_number2 = (EditText) findViewById(R.id.et_number2);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(activity, PersonActivity.class);
//开启一个新的activity,并且获取这个新的activity执行完毕后的结果
startActivityForResult(intent, 1);
}
});
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(activity, PersonActivity.class);
//开启一个新的activity,并且获取这个新的activity执行完毕后的结果
startActivityForResult(intent, 2);
}
});
}
//当activity关闭时调用的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
String number = data.getStringExtra("number");
if (requestCode == 1) {
et_number.setText(number);
} else if (requestCode == 2) {
et_number2.setText(number);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
package com.zhangli.smssender;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.zhangli.PersontInfo.PersonInfo;
import java.util.List;
public class PersonActivity extends Activity {
private ListView lv_person;
private List<PersonInfo> personInfos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_activity);
ListView lv_person=(ListView) findViewById(R.id.lv_person);
personInfos = GetPerson.getPersonInfo(this);
lv_person.setAdapter(new ContentAdapter());
lv_person.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
PersonInfo info= personInfos.get(position);
String number=info.getNumber();
//传递数据给调用他的activity
Intent data =new Intent();
data.putExtra("number", number);
setResult(0,data);
finish();
}
});
}
private class ContentAdapter extends BaseAdapter{
@Override
public int getCount() {
return personInfos.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) {
PersonInfo personInfo = personInfos.get(position);
View view=View.inflate(getApplicationContext(), R.layout.person_item, null);
TextView tv_name=(TextView) view.findViewById(R.id.tv_name);
TextView tv_number=(TextView) view.findViewById(R.id.tv_number);
tv_name.setText(personInfo.getName());
tv_number.setText(personInfo.getNumber());
return view;
}
}
}
记得加上权限:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
还有注册activity:
<activity
android:name=".PersonActivity"
android:label="@string/perosn" >