Search code examples
javaandroidkotlinretrofitpojo

How do i set the value in List<E>'s constructor parameters in kotlin


I have created a pojo class of Account in which there is an array of Address class. I want to set the value of address's parameter from my main fragment. How do I able to set? Please look ahead my code of Account model, Address Model and main fragment where I set the data of account model.

Account model (POJO)

class Account(
          var OrganizationName: String?,
          var Addresses: List<Address>?,) : Serializable {

constructor() : this(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null)}

Address Model (POJO)

class Address(
var Id: Int?,

var Name: String?,
var AddressLine1: String?,
var AddressLine2: String?,
var City: String?,
var Locality: String?,
var State: String?,
var ZipCode: Int?,
):Serializable

Main Fragment class where i set the details of Account and Address class parameters.

  class AccountDetailsFragment constructor
  (onCheckChanged: OnCheckChanged, changeTabs: ChangeTabs) : BaseFragment() {override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view = inflater.inflate(R.layout.fragment_account_details, container, false)


    return view
}

 fun getFilledData(account: Account): Account {

    account.OrganizationName = "name"

    // How do i insert the value for address's parameters here.

    return account


}


}

Solution

  • First up all you are using wrong naming convention for variables. Read more here.

    fun getFilledData(account: Account): Account {
    
        account.OrganizationName = "name"
    
        val addresses = ArrayList<Address>()
        for(i in 0..10){
    
            //create and  insert your multiple addresses here
            val address  = Address(i,"name $i","line1 $i","line2 $i ","city $i","locality $i","state $i ", i)
    
            addresses.add(address)
        }
        //assign list to account
        account.Addresses = addresses
    
        return account
    }