如图所示:
定义一个数据类:
public class MyData implements Serializable{
public String content;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
A_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:background="#FFFFFF"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:background="#0000FF"
android:text="用于显示B返回的数据"
/>
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:textColor="#000000"
android:hint="输入传给B的数据"
/>
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:background="#FF00FF"
android:textColor="#FFFFFF"
android:text="启动B"
/>
</LinearLayout>
A_Activity的Java代码如下:
public class A_Activity extends Activity {
public static String key = "A_Activity.key";
public TextView tv;
public EditText edit;
public Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a_activity_layout);
findView();
setListener();
}
private void findView() {
// TODO Auto-generated method stub
tv = (TextView) findViewById(R.id.tv);
edit = (EditText) findViewById(R.id.edit);
bt = (Button) findViewById(R.id.bt);
}
private void setListener() {
// TODO Auto-generated method stub
//用于实现启动B并传输数据给B
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
MyData data = new MyData();
data.setContent(edit.getText().toString());
Intent intent = new Intent(A_Activity.this,B_Activity.class);
intent.putExtra(key, data);
startActivityForResult(intent, B_Activity.requestCode);
}
});
}
//用于接收B传来的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
// TODO Auto-generated method stub
if(resultCode != Activity.RESULT_OK)
return ;
if(requestCode == B_Activity.requestCode)
{
//解析B传来的数据
MyData data = (MyData) intent.getSerializableExtra(key);
tv.setText(data.getContent());
}
}
}
B_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:background="#FFFFFF"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:background="#0000FF"
android:text="用于显示A返回的数据"
/>
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:textColor="#000000"
android:hint="输入传给A的数据"
/>
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:background="#FF00FF"
android:textColor="#FFFFFF"
android:text="关闭B"
/>
<Button
android:id="@+id/send"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="20sp"
android:background="#FF00FF"
android:textColor="#FFFFFF"
android:text="发送数据给A"
/>
</LinearLayout>
B_Activity的Java代码如下:
public class B_Activity extends Activity{
public static int requestCode = 0;
public TextView tv;
public EditText edit;
public Button bt;
public Button send;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.b_activity_layout);
findView();
setData();
setListener();
}
private void findView() {
// TODO Auto-generated method stub
tv = (TextView) findViewById(R.id.tv);
edit = (EditText) findViewById(R.id.edit);
bt = (Button) findViewById(R.id.bt);
send = (Button) findViewById(R.id.send);
}
private void setData() {
// TODO Auto-generated method stub
//解析A传输过来的数据
MyData data = (MyData) getIntent().getSerializableExtra(A_Activity.key);
tv.setText(data.getContent());
}
private void setListener() {
// TODO Auto-generated method stub
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
finish();
}
});
//将数据传输给A
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
MyData data = new MyData();
data.setContent(edit.getText().toString());
Intent intent = new Intent();
intent.putExtra(A_Activity.key, data);
setResult(Activity.RESULT_OK, intent);
Toast.makeText(B_Activity.this, "发送成功", Toast.LENGTH_SHORT).show();
}
});
}
}
在编辑框中输入 信息: ”B你好,我是A,收到请回答“ 然后启动B
在B中 收到并显示 A传过来的信息 并且输入 ”A我是B,我收到了“ 点击发送数据给A 然后关闭B
A中显示了B回复的内容