意図活性との間の単純なデータ伝送は、Parcelable複合体と、栗型INT年齢列パーセルタイプ、第二活性および分析データ抽出パーセルのファーストネーム及び書き込み活性を与えます
パブリック クラス MainActivityは延びAppCompatActivity { @Overrideが 保護 ボイドのonCreate(バンドルsavedInstanceState){ スーパー.onCreate(savedInstanceState)を、 setContentView(R.layout.activity_main)。 ボタンボタン = findViewById(R.id.button)。 button.setOnClickListener(新しいView.OnClickListener(){ @Override 公共 のボイドのonClick(ビューV){ MyPerson mMyPerson = 新しいMyPerson(); mMyPerson.setName( "トム"); mMyPerson.setAge( 25 )。 テントmIntent = 新しいテント(MainActivity。これ、Main2Activity。クラス); バンドルmBundle = 新しいバンドル(); mBundle.putParcelable( "キー" 、mMyPerson)。 mIntent.putExtras(mBundle)。 startActivity(mIntent)。 } })。 } }
上記は、最初のアクティビティであります
パブリック クラス Main2Activityは延びAppCompatActivity { @Overrideが 保護 ボイドのonCreate(バンドルsavedInstanceState){ スーパー.onCreate(savedInstanceState)を、 setContentView(R.layout.activity_main2)。 TextViewのTextView = findViewById(R.id.text)。 MyPerson parcelable。= getIntent()getParcelableExtra( "キー" ); textView.setText( "名前=" + parcelable.getName()+ "年齢=" + parcelable.getAge()); } }
インタビューの第二の活動
パブリック クラス MyPersonは実装Parcelable { プライベート文字列名を、 プライベート int型の年齢; プライベート 静的な 最終文字列タグ=「テキスト」; パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } 公共 INT getAge(){ 戻り年齢; } 公共 ボイド setAge(int型の年齢){ この.age = 年齢; } パブリック 静的 最終 Parcelable.Creator <MyPerson> CREATOR = 新しいクリエーター<MyPerson> (){ @Override 公共MyPerson createFromParcel(パーセル源){ Log.d(TAG、 "createFromParcel" )。 MyPerson mMyPerson = 新しいMyPerson(); mMyPerson.name = source.readString()。 mMyPerson.age = source.readInt()。 返すmMyPersonを。 } @Override 公共 MyPerson [] NEWARRAY(int型のサイズ){ // TODO自動生成方法スタブは 戻り 新しいMyPerson [サイズ]。 } }。 @Override 公共 INT describeContents(){ // TODO自動生成方法スタブ Log.d(TAG、 "describeContents" )。 リターン 0 ; } @Override 公共 ボイド writeToParcel(パーセルDEST、int型フラグ){ // TODO自動生成方法スタブ Log.d(TAG、 "writeToParcel" )。 dest.writeString(名); dest.writeInt(年齢); } }
インターフェイスを実装Parcelable