Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android技術基礎 >> 第70章、初識Intent-打開另一個Activity:雙向傳值(從零開始學Android)

第70章、初識Intent-打開另一個Activity:雙向傳值(從零開始學Android)

編輯:Android技術基礎

在Android應用中實現activity之間的跳轉使用intent機制。

本例子簡單地簡紹如何利用intent使程序由MainActivity跳轉到另一個OtherActivity實現單一參數值,在返回MainActivity時利用Bundle進行批量回傳。

一、設計界面

1、MainActivity布局文件

打開res/layout/activity_main.xml文件。
輸入以下代碼:

[html] view plain copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <Button  
  9.         android:id="@+id/open"  
  10.         android:layout_width="wrap_content"  
  11.         android:layout_height="wrap_content"  
  12.         android:text="打開另一個Activity(OtherActivity)" />  
  13.   
  14.     <TextView  
  15.         android:id="@+id/result"  
  16.         android:layout_width="wrap_content"  
  17.         android:layout_height="wrap_content"  
  18.         android:text="顯示OtherActivity返回結果" />  
  19.   
  20. </LinearLayout>  

2、OtherActivity布局文件

打開res/layout/otheractivity.xml文件。
輸入以下代碼:

[html] view plain copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <Button  
  8.         android:id="@+id/back"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="返回MainActivity" />  
  12.       
  13.     <TextView  
  14.         android:id="@+id/prompt"  
  15.         android:layout_width="wrap_content"  
  16.         android:layout_height="wrap_content"  
  17.         android:text="顯示MainActivity傳值" />  
  18.   
  19. </LinearLayout>  


二、程序文件

1、打開“src/com.genwoxue.intent_b/MainActivity.java”文件。
然後輸入以下代碼:

[java] view plain copy  
  1. package com.genwoxue.intent_b;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.content.Intent;  
  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 MainActivity extends Activity {  
  12.   
  13.     private TextView tvResult=null;  
  14.     private Button btnOpen=null;  
  15.     @Override  
  16.      public void onCreate(Bundle savedInstanceState)     
  17.     {     
  18.         super.onCreate(savedInstanceState);                
  19.         setContentView(R.layout.activity_main);  
  20.           
  21.         tvResult=(TextView)super.findViewById(R.id.result);  
  22.           
  23.         btnOpen=(Button)super.findViewById(R.id.open);  
  24.           
  25.         //調用OtherActivity,並且傳值  
  26.         btnOpen.setOnClickListener(new OnClickListener(){  
  27.             public void onClick(View v)  
  28.             {    
  29.                 Intent intent=new Intent(MainActivity.this,OtherActivity.class);  
  30.                 intent.putExtra("prompt", "你知道蔣老夫子的電話與郵箱嗎?");  
  31.                 MainActivity.this.startActivityForResult(intent, 1);  
  32.             }  
  33.         });  
  34.     }  
  35.       
  36.     //處理接收的數據    
  37.     @Override  
  38.     protected void onActivityResult(int requestCode,int resultCode,Intent data){  
  39.         switch(resultCode){  
  40.             case RESULT_OK:  
  41.                 super.onActivityResult(requestCode, resultCode, data);  
  42.                 //接收數據:采用Bundle傳值  
  43.                 Bundle bundle =data.getExtras();    
  44.                 String employeeName=bundle.getString("employeeName");    
  45.                 String mobile=bundle.getString("mobile");    
  46.                 String email=bundle.getString("email");    
  47.                 tvResult.setText("☆☆☆☆☆☆返回結果☆☆☆☆☆☆"+"\n員工:"+employeeName+"\n手機號碼:"+mobile+"\n電子郵件:"+email);  
  48.                 break;  
  49.             case RESULT_CANCELED:  
  50.                 tvResult.setText("操作取消");  
  51.                 break;  
  52.             default:  
  53.                 break;  
  54.         }  
  55.     }  
  56. }             
  57.       


2、打開“src/com.genwoxue.contentprovider_b/OtherActivity.java”文件。
然後輸入以下代碼:

[java] view plain copy  
  1. package com.genwoxue.intent_b;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.content.Intent;  
  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 OtherActivity extends Activity {  
  12.   
  13.     private TextView tvPrompt=null;  
  14.     private Button btnBack=null;  
  15.     @Override  
  16.      public void onCreate(Bundle savedInstanceState)     
  17.     {     
  18.         super.onCreate(savedInstanceState);                
  19.         setContentView(R.layout.activity_other);             
  20.         tvPrompt=(TextView)super.findViewById(R.id.prompt);  
  21.         btnBack=(Button)super.findViewById(R.id.back);  
  22.           
  23.         //接收數據  
  24.         Intent intent=super.getIntent();  
  25.         String url=intent.getStringExtra("prompt");  
  26.         tvPrompt.setText(url);  
  27.           
  28.         //返回MainActivity  
  29.         btnBack.setOnClickListener(new OnClickListener(){  
  30.             public void onClick(View v)  
  31.             {    
  32.                 Bundle bundle = new Bundle();    
  33.                 bundle.putString("employeeName", "蔣老夫子");    
  34.                 bundle.putString("mobile", "139037100xx");    
  35.                 bundle.putString("email", "[email protected]");  
  36.                   
  37.                 Intent intent = new Intent(OtherActivity.this,MainActivity.class);    
  38.                 intent.putExtras(bundle);    
  39.                 OtherActivity.this.setResult(RESULT_OK, intent);    
  40.                 OtherActivity.this.finish();    
  41.             }  
  42.         });  
  43.     }  
  44. }             


三、配置文件

打開“AndroidManifest.xml”文件。
然後輸入以下代碼:

[html] view plain copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.intent_b"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="8"  
  9.         android:targetSdkVersion="15" />  
  10.   
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/ic_launcher"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <activity  
  17.             android:name="com.genwoxue.intent_b.MainActivity"  
  18.             android:label="@string/app_name" >  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.MAIN" />  
  21.                 <category android:name="android.intent.category.LAUNCHER" />  
  22.             </intent-filter>  
  23.         </activity>  
  24.           
  25.         <span style="color:#ff0000;"><strong><activity  
  26.             android:name="com.genwoxue.intent_b.OtherActivity">  
  27.         </activity>  
  28. </strong></span>    </application>  
  29.   
  30. </manifest>  

四、運行結果

\ \ \

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved