I have API data which ID's are uuid (strings) and not (integer) and when I want to get those ids in my adapter it says
Type mismatch.
Required:
Int
Found:
String?
Sample of API items
{
    "id":"0ade1bfb-6d02-4a1f-9cd4-dc88fa8aadbd",
    "name":"ABC",
    "photo":null // if not null, will be full URL of image (https://example.com/img/abc.jpg)
}
Code
Adapter (commented)
class ServicesAdapter(private val serviceList: List<Service>) : RecyclerView.Adapter<ServicesAdapter.ServiceViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ServiceViewHolder {
        val imageView =
            LayoutInflater.from(parent.context).inflate(R.layout.service_item, parent, false)
        return ServiceViewHolder(imageView)
    }
    override fun onBindViewHolder(holder: ServiceViewHolder, position: Int) {
        val currentItem = serviceList[position]
        holder.imageView.setImageResource(currentItem.photo) <-- error line
        holder.textView.text = currentItem.name
    }
    override fun getItemCount() = serviceList.size
    class ServiceViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val imageView: ImageView = itemView.imageView
        val textView: TextView = itemView.textView2
    }
}
Activity
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    run("api_url")
}
fun run(url: String) {
    val request = Request.Builder()
        .url(url)
        .build()
    client.newCall(request).enqueue(object : Callback {
        override fun onFailure(call: Call, e: IOException) {}
        override fun onResponse(call: Call, response: Response) {
            val list: ArrayList<Service> = ArrayList()
            getServices(response.body()!!.string(), list)
            recycler.layoutManager = LinearLayoutManager(this@MainActivity)
            recycler.adapter = ServicesAdapter(list)
        }
    })
}
fun getServices(response: String, list: ArrayList<Service>) {
    var jsonObject = JSONObject(response)
    val jsonArray = jsonObject.getJSONArray("data")
    for (i in 0 until jsonArray.length()) {
        val jsonObject1 = jsonArray.getJSONObject(i)
        var listingObject = Service(
            jsonObject1.getString("id"),
            jsonObject1.getString("name"),
            jsonObject1.getString("photo")
        )
        list.add(listingObject)
    }
}
Class
class Service (val id: String?, val name: String?, val photo: String?) {
}
Any idea?