Я хотел бы иметь возможность получить индивидуальные параметры моего объекта, который можно описать в следующем упражнении.Я считаю, что я использую правильный метод, просто не понимаю, как выводить входные параметры параметра один раз во втором упражнении.
My MainActivty.kt:
package com.example.favouritefood
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.ImageButton
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val food1: ImageButton = findViewById(R.id.imageButtonFood1)
val food2: ImageButton = findViewById(R.id.imageButtonFood2)
val food3: ImageButton = findViewById(R.id.imageButtonFood3)
val food4: ImageButton = findViewById(R.id.imageButtonFood4)
val pizza = Food(
"Pizza", "www.test.com", "Italy, Tomato",
"1/1/2018", "pizza@mail.com", 5)
food1.setOnClickListener()
{
val intent = Intent(this, MetaDataActivity::class.java).apply {
putExtra("Food", pizza)
}
startActivity(intent)
}
}
}
Мое второе задание (для получения посылки):
package com.example.favouritefood
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.os.Parcelable
import android.widget.EditText
class MetaDataActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_meta_data)
val name: EditText = findViewById(R.id.editTextName)
val food = intent.getParcelableExtra("Food") as Parcelable
val test = food.writeToParcel(food, 0)
name.setText(test.toString())
}
}
Где food.wrtieToParcel(food, 0)
выбрасывает несоответствие типов Required: Parcel!Найдено: может быть обработано за food
.
Как бы я прочитал параметры объекта?
Мой класс объекта для справки:
package com.example.favouritefood
import android.os.Parcel
import android.os.Parcelable
class Food(val name: String?, val location: String?, val keywords: String?, val date: String?, val email: String?, val rating: Int) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readInt()) {
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(name)
parcel.writeString(location)
parcel.writeString(keywords)
parcel.writeString(date)
parcel.writeString(email)
parcel.writeInt(rating)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<Food> {
override fun createFromParcel(parcel: Parcel): Food {
return Food(parcel)
}
override fun newArray(size: Int): Array<Food?> {
return arrayOfNulls(size)
}
}
}