Activity跳转 传值 Intent

一、Intent与Activity应用

 

0.创建新的Activity步骤

 

在应用中创建新的Acitivity很常见;

步骤1:创建一个class继承Activity

 

步骤2:在Android-manifest.xml中添加<activity>元素

 

比如创建了一个名为SubActivity的Activity,则需要声明如下:

[html] view plaincopy
 
  1. <activity android:name=".SubActivity"></activity>  


 

1.最简单的跳转到新的Activity

程序描述:MainActivity点击按钮后跳转到SubActivity,MainActivity传递一个(name,xiazdong)给SubActivity,并获得显示;

 

效果如下:

 

点击按钮后:

 

IntentActivity.java

[java] view plaincopy
 
  1. package org.xiazdong;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class IntentActivity extends Activity {  
  11.     private Button btn1;  
  12.     @Override  
  13.     public void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.         btn1 = (Button)this.findViewById(R.id.brn1);  
  17.         btn1.setOnClickListener(new OnClickListener() {  
  18.             @Override  
  19.             public void onClick(View v) {  
  20.                 Intent intent = new Intent();  
  21.                 intent.setClass(IntentActivity.this, SubActivity.class);  //从IntentActivity跳转到SubActivity  
  22.                 intent.putExtra("name", "xiazdong");  //放入数据  
  23.                 startActivity(intent);  //开始跳转  
  24.             }  
  25.         });  
  26.     }  
  27. }  


SubActivity.java

[java] view plaincopy
 
  1. package org.xiazdong;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.widget.TextView;  
  7.   
  8. public class SubActivity extends Activity{  
  9.     private TextView tv1;  
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         this.setContentView(R.layout.sub);  
  14.         tv1 = (TextView)this.findViewById(R.id.tv1);  
  15.         Intent intent = this.getIntent();    //获得当前的Intent  
  16.         Bundle bundle = intent.getExtras();  //获得全部数据  
  17.         String value = bundle.getString("name");  //获得名为name的值  
  18.         tv1.setText(value);  
  19.     }  
  20.   
  21. }  


 

2.带返回值的跳转

 

跳转到新的Activity并在结束后将返回值传给原Activity

程序描述:MainActivity跳转到SubActivity后,SubActivity执行完后返回一个结果码给IntentActivity,执行对应的过程;

程序效果:

点击跳转后执行完第二个Activity后再跳回第一个Activity

 

IntentActivity.java

[java] view plaincopy
 
  1. package org.xiazdong;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9. import android.widget.TextView;  
  10.   
  11. public class IntentActivity extends Activity {  
  12.     private Button btn1;  
  13.     private TextView tv1;  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.         btn1 = (Button)this.findViewById(R.id.brn1);  
  19.         tv1 = (TextView)this.findViewById(R.id.tv2);  
  20.         btn1.setOnClickListener(new OnClickListener() {  
  21.             @Override  
  22.             public void onClick(View v) {  
  23.                 Intent intent = new Intent();  
  24.                 intent.setClass(IntentActivity.this, SubActivity.class);  
  25.                 startActivityForResult(intent, 100); //requestcode=100  
  26.                   
  27.             }  
  28.         });  
  29.     }  
  30.     @Override  
  31.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  32.         super.onActivityResult(requestCode, resultCode, data);  
  33.         if(requestCode==100&&resultCode==200){  
  34.             Bundle bundle = data.getExtras();  
  35.             String response = bundle.getString("response");  
  36.             tv1.setText(response);  
  37.         }  
  38.     }  
  39.       
  40. }  

 

SubActivity.java

 

[java] view plaincopy
 
  1. package org.xiazdong;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.widget.TextView;  
  7.   
  8. public class SubActivity extends Activity{  
  9.     private TextView tv1;  
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         this.setContentView(R.layout.sub);  
  14.         tv1 = (TextView)this.findViewById(R.id.tv1);  
  15.         Intent intent = new Intent();  //创建一个Intent  
  16.         intent.putExtra("response", "来自2");  
  17.         setResult(200,intent);  //返回码为200  
  18.         finish();  
  19.     }  
  20.   
  21. }  
 
转自:http://blog.csdn.net/xiazdong/article/details/7664757
posted @ 2014-12-30 14:45  猿走天下  阅读(126)  评论(0)    收藏  举报