1、第一个活动MainActivity.java
package com.t20.activitydemo; import com.t20.activitydemo.R.string; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private EditText etName; /** * 活动在被系统回收时调用,用于临时保存数据 */ @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); String str="我觉得我还可以抢救一下!"; outState.putString("data", str); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //输入框 etName=(EditText) findViewById(R.id.etName); Log.w("生命周期", "onCreate"); //判断是否有临时保存的数据,有就加载出来 if(savedInstanceState!=null){ //获取保存的值 String data=savedInstanceState.getString("data"); Toast.makeText(MainActivity.this, data, Toast.LENGTH_SHORT).show(); } } /** * 启动第二个活动 */ public void start2(View v){ //1、准备意图(想要) Intent intent=new Intent(MainActivity.this, SecondActivity.class); //-----------------------------起点-----------------终点--------- //2、传值 String name=etName.getText().toString(); intent.putExtra("name", name);//第一个参数是key键,第二个是值 //3、出发 // (单程) startActivity(intent); // (往返) startActivityForResult(intent, 2); //----------------------意图---请求码 } /** * 启动第三个活动 */ public void start3(View v){ //1、准备意图(想要) Intent intent=new Intent(MainActivity.this, ThirdActivity.class); //-----------------------------起点-----------------终点-------- //2、出发(往返) startActivityForResult(intent, 3); //----------------------意图---请求码 } /** * 启动第四个活动 */ /* 注意了:第四个活动需要在AndroidManifest.xml清单文件中添加<intent-filter>设置,内容如下: <activity android:name="com.t20.activitydemo.FourthActivity" android:label="@string/title_activity_fourth" > <intent-filter> <action android:name="android.xxx.ooo"/> <category android:name="android.intent.category.DEFAULT"/> <!-- 把con.xxx.ooo设置为系统默认的一个动作 --> </intent-filter> </activity> */ public void start4(View v){ //使用隐式启动,调用自定义的动作android.xxx.ooo Intent intent=new Intent("android.xxx.ooo"); startActivity(intent); } /** * 拨打电话 * @param v */ public void call(View v){ //使用隐式启动,调用系统的动作拨打电话 Intent intent=new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent); } /** * requestCode 请求码 * resultCode 响应码 * data 意图 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if(requestCode==2){ switch (resultCode) { case 201: //获取返回的参数 String data1=data.getStringExtra("data1"); Toast.makeText(MainActivity.this, data1, Toast.LENGTH_SHORT).show(); break; case 202: //获取返回的参数 String data2=data.getStringExtra("data2"); Toast.makeText(MainActivity.this, data2, Toast.LENGTH_SHORT).show(); break; } }else if(requestCode==3){ switch (resultCode) { case 301: //获取返回的参数 String data1=data.getStringExtra("data1"); Toast.makeText(MainActivity.this, data1, Toast.LENGTH_SHORT).show(); break; case 302: //获取返回的参数 String data2=data.getStringExtra("data2"); Toast.makeText(MainActivity.this, data2, Toast.LENGTH_SHORT).show(); break; } } super.onActivityResult(requestCode, resultCode, data); } }
2、第二个活动SecondActivity.java
package com.t20.activitydemo; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.TextView; public class SecondActivity extends Activity { private TextView tvContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); //文本 tvContent=(TextView) findViewById(R.id.tvContent); //获取意图传过来的值 String name=getIntent().getStringExtra("name");//参数为传值活动设定的key键 tvContent.setText(name); } /** * 第一种情况 * @param v */ public void back1(View v){ //使用意图把参数传回前一个活动 Intent intent=new Intent(); intent.putExtra("data1", "我是第1种 情况!"); setResult(201, intent); //-------响应码--意图 finish();//完成,销毁活动 } /** * 第二种情况 * @param v */ public void back2(View v){ //使用意图把参数传回前一个活动 Intent intent=new Intent(); intent.putExtra("data2", "我是第2种 情况!"); setResult(202, intent); //-------响应码--意图 finish();//完成,销毁活动 } }