Android Intent实现Activity之间跳转并传值


Android用Intent这个特殊类实现在Activity与Activity之间的切换。通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用 startActivity(IntentmyIntent)方法。例子效果如下:

       

IntentTest.java代码如下:

  1. package intent.pack; 
  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.EditText; 
  10.  
  11. public class IntentTest extends Activity { 
  12.     /** Called when the activity is first created. */ 
  13.     private EditText et1; 
  14.     @Override 
  15.     public void onCreate(Bundle savedInstanceState) { 
  16.         super.onCreate(savedInstanceState); 
  17.         setContentView(R.layout.main); 
  18.         et1=(EditText)findViewById(R.id.editText1); 
  19.         Button bt=(Button)findViewById(R.id.button1); 
  20.         bt.setOnClickListener(new ButtonListener()); 
  21.     } 
  22.     class ButtonListener implements OnClickListener{ 
  23.         @Override 
  24.         public void onClick(View arg0) { 
  25.             String val=et1.getText().toString(); 
  26.             //生成一个Intent对象 
  27.             Intent intent=new Intent(); 
  28.             //设置传递的参数 
  29.             intent.putExtra("val", val); 
  30.             //从Activity IntentTest跳转到Activity IntentTest01 
  31.             intent.setClass(IntentTest.this,IntentTest01.class); 
  32.             //启动intent的Activity 
  33.             IntentTest.this.startActivity(intent); 
  34.         } 
  35.          
  36.     } 

IntentTest01.java代码如下:

  1. package intent.pack; 
  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 IntentTest01 extends Activity{ 
  9.     @Override 
  10.     public void onCreate(Bundle savedInstanceState) { 
  11.         super.onCreate(savedInstanceState); 
  12.         setContentView(R.layout.intent01); 
  13.         Intent intent=getIntent(); 
  14.         String value=intent.getStringExtra("val"); 
  15.         TextView et=(TextView)findViewById(R.id.textView1); 
  16.         et.setText(value); 
  17.     } 

main.xml代码如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7.     <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:text="请输入内容!" android:layout_height="wrap_content"></EditText> 
  8.     <Button android:id="@+id/button1" android:text="确定" android:layout_height="wrap_content" android:layout_width="match_parent"></Button> 
  9. </LinearLayout> 

intent01.xml代码如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7.     <TextView android:id="@+id/textView1" android:textSize="20sp" android:layout_width="match_parent" android:text="请输入内容!" android:layout_height="wrap_content"></TextView> 
  8. </LinearLayout> 

AndroidManifest.xml代码如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.       package="intent.pack" 
  4.       android:versionCode="1" 
  5.       android:versionName="1.0"> 
  6.     <uses-sdk android:minSdkVersion="4" /> 
  7.  
  8.     <application android:icon="@drawable/icon" android:label="@string/app_name"> 
  9.         <activity android:name=".IntentTest" 
  10.                   android:label="@string/app_name"> 
  11.             <intent-filter> 
  12.                 <action android:name="android.intent.action.MAIN" /> 
  13.                 <category android:name="android.intent.category.LAUNCHER" /> 
  14.             </intent-filter> 
  15.         </activity> 
  16.         <activity android:name=".IntentTest01" 
  17.                   android:label="@string/app1_name"> 
  18.         </activity> 
  19.     </application> 
  20. </manifest>

相关内容