Android--Bundleオブジェクトの使用

2018 ワード

Android開発では、1つのActivityで別のActivityを起動するにはstartActivity()関数を呼び出す必要があります.この関数のパラメータはIntentオブジェクトで、このオブジェクトの通常の初期化方法は次の通りです.
Intent intent = new Intent();
intent.setClass(this,SecondActivity.class);
startActivity(intent);

これで新しいActivityの起動が完了しましたが、この起動方式では2つのActivityの間にデータの転送はありません.多くの場合、前のActivityが新しい起動のActivityにデータを転送することがよくあります.これはBundleイメージに使用されます.たとえば、最初のActivityでは、身長と性別の2つのデータを取得し、新しく起動したActivityに渡す必要があります.では、これらのデータをBundleオブジェクトにカプセル化し、BundleオブジェクトassignをIntentにstarActivity()関数のパラメータとして渡します.実装コードは次のとおりです.
Intent intent = new Intent();
intent.setClass(this,SecondActivity.class);
//  Bundle  
Bundle bundle = new Bundle();
bundle.putDouble("height",height);//height double   
bundle.putString("sex",sex);//sex string   
// Bundle  assign Intent
intent.putExtras(bundle);
startActivity(intent);

2番目のActivityに対応してデータを受信する方法も簡単で、まずIntentオブジェクトからBundleを分離し、同じ方法でデータを抽出します.実装コードは次のとおりです.
Bundle bundle1=this.getIntent().getExtras();
String sex=bundle1.getString("sex");
double height=bundle1.getDouble("height");

プログラムにActivityが複数ある場合はAndroid Manifestにあることに注意してください.xmlで宣言され、Activity形式が次のように宣言されます.
<activity android:name="SecondActivity"></activity>

複数のActivityが存在する場合、AndroidManifestでも最初に起動するActivityを指定する必要があります.xmlで宣言します.宣言方法は次のとおりです.
<activity android:name="SecondActivity">
     <intent-filter>
          <action android:name="android.intent.action.MAIN"/>
          <category android:name="android.intent.category.LAUNCHER"/>
     </intent-filter>
</activity>

Bundleオブジェクトには、getBooleanなど、さまざまなデータ型の操作方法があります.具体的にはAndroidの公式サイトを参照してください.
変換元:http://www.shunix.com