建一个FActivity.java
package com.example;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class FActivity extends Activity{
private Button btn_f;
private Button btn_s;
private Context mContext;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
mContext=this;
tv=(TextView)findViewById(R.id.textView);
btn_f=(Button)findViewById(R.id.btn_first);
btn_s=(Button)findViewById(R.id.btn_second);
btn_f.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(mContext, SActivity.class);
startActivity(intent);
}
});
btn_s.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//第一个参数:上下文对象this、
//第二个参数:目标文件
Intent intent=new Intent(mContext,SActivity.class);
//第一个参数是个Intent对象
//第二个参数是请求的一个标识
startActivityForResult(intent, 1);
}
});
}
//requestCode请求的标识
//,resultCode第二个页面返回的标识,标识是哪个页面返回的数据
//data是第二个页面回传的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==2){
String content=data.getStringExtra("data");
tv.setText(content);
}
}
}
布局代码如下
<?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" >
<Button
android:id="@+id/btn_first"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="第一种启动方式" />
<Button
android:id="@+id/btn_second"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="第二种启动方式" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="把第二个页面回传的数据显示出来" />
</LinearLayout>
新建另一个SActivity.java
package com.example;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SActivity extends Activity{
private Button btn;
private String content="回传的数据";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sactivity);
btn=(Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent data=new Intent();
data.putExtra("data", content);
setResult(2,data);
finish();
}
});
}
}
布局代码如下
<?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" >
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="回传数据" />
</LinearLayout>
Manifest代码需要进行更改,使启动页面为FActivity
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name=".FActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SActivity"
android:label="@string/app_name" >
</activity>
</application>
</manifest>