Activity之间的数据传输

来源:互联网 发布:淘宝ltvvy模特是谁 编辑:程序博客网 时间:2024/06/09 17:39

如图所示:



定义一个数据类:

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 stubtv = (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并传输数据给Bbt.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {// TODO Auto-generated method stubMyData 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传来的数据@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) {// TODO Auto-generated method stubif(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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState); setContentView(R.layout.b_activity_layout);     findView();     setData();     setListener();}private void findView() {// TODO Auto-generated method stubtv = (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 stubbt.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {// TODO Auto-generated method stubfinish();}});//将数据传输给Asend.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {// TODO Auto-generated method stubMyData 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回复的内容 




1 0