Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android 多個Activity之間的通信

Android 多個Activity之間的通信

編輯:高級開發

app_name">

  9. < intent-filter>

  10. < action android:name="android.intent.action.MAIN" />

  11. < category android:name="android.intent.category.LAUNCHER" />

  12. < /intent-filter>

  13. < /activity>

  14. < !-- 應用的是 應用的標題 -->

  15. < activity android:name=".otherActivity" android:label="@string/context">< /activity>

  16. < /application>

  17. < uses-sdk android:minSdkVersion="7" />

  18.

  19. < /manifest>

  < ?XML version="1.0" encoding="utf-8"?>

  < manifest XMLns:android="http://schemas.android.com/apk/res/android"

  package="com.file"

  android:versionCode="1"

  android:versionName="1.0">

  < application android:icon="@drawable/icon" android:label="@string/app_name">

  < activity android:name=".OneActivity"

  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=".otherActivity" android:label="@string/context">< /activity>

  < /application>

  < uses-sdk android:minSdkVersion="7" />

  < /manifest>

  主Activity

  Java代碼

  1. package com.file;

  2.

  3. import android.app.Activity;

  4. import android.content.Intent;

  5. import android.os.Bundle;

  6. import android.util.Log;

  7. import android.view.VIEw;

  8. import android.widget.Button;

  9. /**

  接上頁

  10. * 這個是程序入口的Activity

  11. * @author Administrator

  12. *

  13. */

  14. public class OneActivity extends Activity {

  15. private static final String tag="OneActivity";

  16.

  17.

  18. @Override

  19. public void onCreate(Bundle savedInstanceState) {

  20. super.onCreate(savedInstanceState);

  21. setContentVIEw(R.layout.main);

  22. Button button=(Button)this.findVIEwById(R.id.button);

  23. //為按鈕設置單擊事件

  24. button.setOnClickListener(listener);

  25. }

  26. private View.OnClickListener listener=new VIEw.OnClickListener() {

  27.

  28. @Override

  29. public void onClick(VIEw v) {

  30. /**

  31. * 打開新的Activity 在打開新的Activity之前,必須在當前的Activity對應的清單文件中進行配置

  32. * 這好比是stuts1的action的重定向

  33. * 組件和組件之間的聯系是通過意圖Intent來實現 這裡德組件指的是Activity

  34. */

  35. //寫法一

  36. /**

  37. * 這個意圖 表示是執行OneActivity的這個應用的otherActivity的應用 定義意圖是做什麼操作

  38. */

  39. Intent intent=new Intent(OneActivity.this, otherActivity.class);

  40. //設置傳遞參數

  41. intent.putExtra("id", 100);

  42. intent.putExtra("name", "liming");

  43. /**

  44. * 執行這個意圖 把這個意圖交給操作系統去處理

  45. */

  46. OneActivity.this.startActivityForResult(intent, 3);

  47. //寫法二

  48. //Intent intent=new Intent();

  49. //intent.setClass(OneActivity.this, otherActivity.class);

  50. //寫法三

  51. /**

  52. * 三種寫法都是等價的 都是打開應用裡面的組件

  53. */

  54. //Intent intent=new Intent();

  55. //intent.setComponent(new ComponentName(OneActivity.this,

  接上頁

otherActivity.class));

  56.

  57. }

  58. };

  59. /**

  60. * 接受返回的參數的方法

  61. * 參數 請求碼 結果碼 意圖返回的數據

  62. */

  63. @Override

  64. protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  65. Log.i(tag, "requestCode=="+requestCode+" resultCode=="+resultCode);

  66. Log.i(tag, "data=="+data);

  67. if(resultCode==12){

  68. //獲取意圖裡的信息

  69. data.getStringExtra("result");

  70.

  71. Log.i(tag,data.getStringExtra("result"));

  72. }

  73. super.onActivityResult(requestCode, resultCode, data);

  74. }

  75. }

  package com.file;

  import android.app.Activity;

  import android.content.Intent;

  import android.os.Bundle;

  import android.util.Log;

  import android.view.VIEw;

  import android.widget.Button;

  /**

  * 這個是程序入口的Activity

  * @author Administrator

  *

  */

  public class OneActivity extends Activity {

  private static final String tag="OneActivity";

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentVIEw(R.layout.main);

  Button button=(Button)this.findVIEwById(R.id.button);

  //為按鈕設置單擊事件

  button.setOnClickListener(listener);

  }

  private View.OnClickListener listener=new VIEw.OnClickListener() {

  @Override

  public void onClick(VIEw v) {

  /**

  * 打開新的Activity 在打開新的Activity之前,必須在當前的Activity對應的清單文件中進行配置

  * 這好比是stuts1的action的重定向

  * 組件和組件之間的聯系是通過意圖Intent來實現 這裡德組件指的是Activity

  接上頁

  */

  //寫法一

  /**

  * 這個意圖 表示是執行OneActivity的這個應用的otherActivity的應用 定義意圖是做什麼操作

  */

  Intent intent=new Intent(OneActivity.this, otherActivity.class);

  //設置傳遞參數

  intent.putExtra("id", 100);

  intent.putExtra("name", "liming");

  /**

  * 執行這個意圖 把這個意圖交給操作系統去處理

  */

  OneActivity.this.startActivityForResult(intent, 3);

  //寫法二

  //Intent intent=new Intent();

  //intent.setClass(OneActivity.this, otherActivity.class);

  //寫法三

  /**

  * 三種寫法都是等價的 都是打開應用裡面的組件

  */

  //Intent intent=new Intent();

  //intent.setComponent(new ComponentName(OneActivity.this, otherActivity.class));

  }

  };

  /**

  * 接受返回的參數的方法

  * 參數 請求碼 結果碼 意圖返回的數據

  */

  @Override

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  Log.i(tag, "requestCode=="+requestCode+" resultCode=="+resultCode);

  Log.i(tag, "data=="+data);

  if(resultCode==12){

  //獲取意圖裡的信息

  data.getStringExtra("result");

  Log.i(tag,data.getStringExtra("result"));

  }

  super.onActivityResult(requestCode, resultCode, data);

  }

  }

  次要的Activity

  Java代碼

  1. package com.file;

  2.

  3. import android.app.Activity;

  4. import android.content.Intent;

  5. import android.os.Bundle;

  6. import android.view.VIEw;

  7. import android.widget.Button;

  8. import android.widget.TextVIEw;

  9.

  10. public class otherActivity extends Activity {

  11. private TextView textvIEw;

  接上頁

  12. @Override

  13. protected void onCreate(Bundle savedInstanceState) {

  14. // TODO Auto-generated method stub

  15. super.onCreate(savedInstanceState);//執行構造一個界面

  16. setContentVIEw(R.layout.otherui); //執行要使用的界面

  17. textview=(TextView)this.findVIEwById(R.id.result);

  18.

  19. Intent intent=otherActivity.this.getIntent();//獲取傳遞過來的意圖

  20.

  21. int id=intent.getIntExtra("id", 0); //獲取意圖傳遞過來的參數 方法對應的 參數一 參數名 默認的值

  22. String name=intent.getStringExtra("name");

  23.

  24. textvIEw.setText("id為:"+id+",name:"+name);

  25.

  26.

  27. Button button = (Button)this.findVIEwById(R.id.finish);

  28. button.setOnClickListener(new VIEw.OnClickListener() {

  29. @Override

  30. public void onClick(VIEw v) {

  31. Intent intent = new Intent();//數據是使用Intent返回

  32. intent.putExtra("result", "itcast student");//把返回數據存入Intent

  33. otherActivity.this.setResult(12, intent);//設置返回數據

  34. otherActivity.this.finish();

  35. }

  36. });

  37. }

  38.

  39. }

  package com.file;

  import android.app.Activity;

  import android.content.Intent;

  import android.os.Bundle;

  import android.view.VIEw;

  import android.widget.Button;

  import android.widget.TextVIEw;

  public class otherActivity extends Activity {

  private TextView textvIEw;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

  // TODO Auto-generated method stub

  super.onCreate(savedInstanceState);//執行構造一個界面

  setContentVIEw(R.layout.otherui); //執行要使用的界面

  textview=(TextView)this.findVIEwById(R.id.result);

  接上頁

  Intent intent=otherActivity.this.getIntent();//獲取傳遞過來的意圖

  int id=intent.getIntExtra("id", 0); //獲取意圖傳遞過來的參數 方法對應的 參數一 參數名 默認的值

  String name=intent.getStringExtra("name");

  textvIEw.setText("id為:"+id+",name:"+name);

  Button button = (Button)this.findVIEwById(R.id.finish);

  button.setOnClickListener(new VIEw.OnClickListener() {

  @Override

  public void onClick(VIEw v) {

  Intent intent = new Intent();//數據是使用Intent返回

  intent.putExtra("result", "itcast student");//把返回數據存入Intent

  otherActivity.this.setResult(12, intent);//設置返回數據

  otherActivity.this.finish();

  }

  });

  }

  }

  好了 到這裡就結束了 看懂了代碼就自然懂了

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