как я могу динамически добавлять изображения из нарисованного в представление переработчика с помощью kotlin?Вот мой MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.get = Get()
//parse array klaxon
var products = Klaxon().parseArray<ProductData>(addProducts())
if (!products!!.isEmpty()) {
product_list.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
product_list.hasFixedSize()
product_list.adapter = ProductAdapter(products, { item: ProductData-> item })
}
}
private fun addProducts(): String {
return application.assets.open("product_data.json").bufferedReader().use{
it.readText()
}
}
private fun read(): String {
return application.assets.open("text.json").bufferedReader().use{
it.readText()
}
}
fun Get() : Data {
val data = Klaxon()
.parse<Data>(read())
if(data == null) return Data(
"",
"",
"",
"",
"",
"",
"",
"",
""
)
return data
}
}
Вот мой адаптер ProductAdapter
class ProductAdapter (var productList: List<ProductData>, var clickListener: (ProductData) -> Unit) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
var v = LayoutInflater.from(parent.context).inflate(R.layout.product_lists_item, parent, false)
return ListHolder(v)
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
(holder as ListHolder).bind(productList[position], clickListener)
}
override fun getItemCount() = productList.size
class ListHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(_list: ProductData, clickListener: (ProductData) -> Unit) {
itemView.product_item.text = _list.product_name
itemView.setOnClickListener { clickListener(_list) }
}
}
}
и вот мой класс данных, ProductData.kt
data class ProductData (
var product_name: String
//do I need to declare the image here?
)
и здесь я получаю данные, используя JSON, product_data.json
[ {
"product_name": "Flexible Hose Tangki Air Penguin",
"product_image": "flexible_hose_tangki_air_penguin_1_fu.jpg"
},
{
"product_name": "Foot Valve / Tusen Klep Tangki Air Penguin",
"product_image": "foot_valve_tusen_klep_tangki_air_penguin_1_fu.jpg"
},
{
"product_name": "Gasket Aksesoris Tangki Air Penguin",
"product_image": "gasket_aksesoris_tangki_air_penguin_1_fu.jpg"
}
]
Мне удалось показать переработчикапросматривать, но не с данными изображения.Мне нужно поместить изображение в верхней части product_name.Должен ли я использовать Пикассо для этого?или нет?Заранее спасибо.