Parcelable使用(B)

意図活性との間の単純なデータ伝送は、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

おすすめ

転載: www.cnblogs.com/Ocean123123/p/10955721.html