Android Activity間のパラメータ伝達

2112 ワード

Webプログラムを開発するとき、Webページ間でパラメータを渡すことができることはよく知られています.androidでは、activityごとに1つのページ(ウィンドウ)に相当します.もちろん、パラメータを渡すこともできます.
構想:Intent--->を通じてコンポーネント(Activity)を活性化し、データを添付する
Intent(意向):
1:Intentオブジェクトによってコンポーネントactivityをアクティブにするには、次の5つの方法があります.
方法1:
Intent intent=new Intent(this,OtherActivity.class); //            ,           activity

方法2:
Intent intent=new Intent();
intent.setClass(this,OtherActivity.class);//            ,           activity

方式3:
intent.setClassName(this,"cn.kafei.activitys.OtherActivity");//            ,           activity      

方法4:
intent.setComponent(new ComponentName(this,OtherActivity.class));//    ComponentName  

方法5:アプリケーション間でactivityをアクティブにする、つまり他のアプリケーションのactivityをアクティブにする必要がある場合に使用します.外部activityをアクティブにする権限が必要であることを前提とします.
//     activity;               ,                       
 intent.setClassName("cn.kafei.activitys","cn.kafei.activitys.OtherActivity");

二:Intentオブジェクトによってコンポーネントをアクティブにしながらパラメータを渡す:
方法1:
Intent intent=new Intent();
intent.putExtra("name","kafei");
intent.putExtra("age",22);

方式2:Bundleオブジェクト経由:
Bundle bundle=new Bundle();
bundle.putString("name","  ");
bundle.putInt("age", 20);
intent.putExtras(bundle);
3:最終的に次の2つの方法でアクティブ化するactivityを起動します.
startActivity(intent);
または
startActivityForResult(intent, 200); //     :Intent  ,         ,                 

適用シーン:AでBをアクティブにしますが、Bがいつ閉じたか知りたい場合は、使用する必要があります.
四:アクティブ化されたコンポーネント
1.アクティブ化されたコンポーネント(Activity)Intentのパラメータを取得する
Intent intent=getIntent();//          
String name= intent.getStringExtra("name");
int age=intent.getIntExtra("age",0);//          0
または
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
int age = bundle.getInt("age");
ソースコードダウンロード:android Activity間のデータ転送