写了一个DEMO:短信选择联系人的数据传递
主activity:
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Intent;
- import android.view.Menu;
- import android.view.View;
- import android.widget.EditText;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- public void click(View c){
- //跳转至选择联系人Activity
- Intent intent = new Intent(this, ContactActivity.class);
- // startActivity(intent);
- //用这个api启动的Activity,在销毁时,系统会回调onActivityResult
- startActivityForResult(intent, 10);
- }
- public void click2(View v){
- //跳转至选择快捷回复的Activity
- Intent intent = new Intent(this, CallbackActivity.class);
- startActivityForResult(intent, 20);
- }
- //如果有Activity在销毁时返回了数据,那么就会调用此方法来接收数据
- //requestCode:用来区分数据来自于哪一个Activity
- //resultCode:用来区分返回的数据是什么类型的
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO Auto-generated method stub
- super.onActivityResult(requestCode, resultCode, data);
- String name = data.getStringExtra("name");
- if(requestCode == 10){
- EditText et = (EditText)findViewById(R.id.et);
- et.setText(name);
- }
- else if(requestCode == 20){
- EditText et_content = (EditText)findViewById(R.id.et_content);
- et_content.setText(name);
- }
- }
- }
联系人activity:
- 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 ContactActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_contact);
- ListView lv = (ListView) findViewById(R.id.lv);
- final String[] objects = new String[]{
- "小志",
- "逼哥",
- "世界级XXX",
- "国服第一"
- };
- lv.setAdapter(new ArrayAdapter<String>(this, R.layout.item_listview, R.id.tv, objects));
- //给listview设置条目的点击侦听
- lv.setOnItemClickListener(new OnItemClickListener() {
- //当某个条目被点击时,此方法调用
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- //Activity返回时传递数据,也是通过意图对象
- Intent data = new Intent();
- //把要传递的数据封装至意图对象中
- data.putExtra("name", objects[position]);
- //当前Activity销毁时,data这个意图就会传递给启动当前Activity的那个Activity
- setResult(1, data);
- //销毁当前Activity
- finish();
- }
- });
- }
- @Override
- public void onBackPressed() {
- // TODO Auto-generated method stub
- super.onBackPressed();
- }
- }
快捷回复activity:
- 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 CallbackActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_contact);
- ListView lv = (ListView) findViewById(R.id.lv);
- final String[] objects = new String[]{
- "免谈,没戏,滚犊子",
- "媳妇我错了,求原谅",
- "老子才是一家之主"
- };
- lv.setAdapter(new ArrayAdapter<String>(this, R.layout.item_listview, R.id.tv, objects));
- lv.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- Intent data = new Intent();
- data.putExtra("name", objects[position]);
- setResult(2, data);
- finish();
- }
- });
- }
- }
- <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:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context=".MainActivity"
- android:orientation="vertical"
- >
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
- <EditText
- android:id="@+id/et"
- android:layout_weight="1"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:hint="请输入联系人"
- />
- <Button
- android:layout_weight="0"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="+"
- android:onClick="click"
- />
- </LinearLayout>
- <EditText
- android:id="@+id/et_content"
- android:layout_weight="1"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:hint="请输入短信内容"
- android:gravity="top"
- />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="快捷回复"
- android:onClick="click2"
- />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="发送短信"
- />
- </LinearLayout>
- <?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"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- ></ListView>
- </LinearLayout>
- <?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" >
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="20sp"
- />
- </LinearLayout>
转载:http://blog.csdn.net/chaoyu168/article/details/51011711