How to pass custom object in Bundle?

后端 未结 5 2009
太阳男子
太阳男子 2020-12-13 12:59

I am trying to pass my own custom object into a bundle:

Bundle b = new Bundle();
                STMessage message = (STMessage)a.getAdapter().getItem(positi         


        
5条回答
  •  半阙折子戏
    2020-12-13 13:29

    Model Class

    package com.sam.bundleobjectpass;
    
    import java.io.Serializable;
    
    /**
     * Created by Samir on 31.8.2016.
     */
    public class Model implements Serializable {
        private String name;
        private String surName;
        private int age;
    
        public Model(String name, String surName, int age) {
            this.name = name;
            this.surName = surName;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        
        public String getSurName() {
            return surName;
        }
    
    
        public int getAge() {
            return age;
        }
    
    
    }
    

    MainActivity

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            Model model = new Model("Sam", "Sami",32);
            
            Intent i = new Intent(MainActivity.this, ReceiverActivity.class);
            i.putExtra("Editing", model); // sending our object. In Kotlin is the same
            startActivity(i);
    
        }
    }
    

    ReceiverActivity

    public class ReceiverActivity extends Activity {
    
        TextView txt_name;
        TextView txt_surname;
        TextView txt_age;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.second);
    
            txt_name = (TextView)findViewById(R.id.txt_name);
            txt_surname = (TextView)findViewById(R.id.txt_surname);
            txt_age = (TextView)findViewById(R.id.txt_age);
            // receiving our object
            Model model = (Model) getIntent().getSerializableExtra("Editing");
    
            txt_name.setText(model.getName());
            txt_surname.setText(model.getSurName());
            txt_age.setText(""+model.getAge());
    
    
        }
    }
    

    // Kotlin

    val model: ProgramModel? = intent.getSerializableExtra("Editing") as ProgramModel?
            model?.let { // means if not null or empty
                txt_act_daily_topic.text = it.title
            }
    

提交回复
热议问题