I am using recyclerview in kotlin and I am new to kotlin. I have used button.setOnClickListner
method inside this. I want to call a method which is in my mainActivity
. How should I do it
I want to call below method which is in mainActivity
fun sendOrder() {
Log.e("TAG", "SendOrder: " )
}
my adapter is below
class CustomAdapterJob(val jobList: ArrayList<JobData>): RecyclerView.Adapter<CustomAdapterJob.ViewHolder>(){
override fun onBindViewHolder(holder: ViewHolder?, position: Int) {
val jobData :JobData = jobList[position]
holder?.textViewId?.text = jobData.id
holder?.textViewArea?.text = jobData.area
holder?.textViewCarType?.text = jobData.carType
holder?.textViewCarName?.text = jobData.carName
holder?. textViewDutyHours?.text = jobData.dutyHours
holder?.textViewWeeklyOff?.text = jobData.weeklyOff
holder?.textViewDriverAge?.text = jobData.driverAge
holder?.textViewDriverExperience?.text = jobData.drivingExperience
holder?.textViewOutstationDays?.text = jobData.outstationDays
holder?.textViewDutyDetails?.text = jobData.dutyDetails
holder?.button?.text =jobData.submit
if(jobData.submit == "true"){
holder?.button?.setVisibility(View.GONE);
}
holder?.button?.setOnClickListener( View.OnClickListener (){
Log.d("TAG", "job list position : ${jobList[position].id}")
var id = jobList[position].id
val p = Pattern.compile("-?\\d+")
val m = p.matcher(id)
while (m.find()) {
System.out.println(m.group())
sendOrder()
}
});
//To change body of created functions use File | Settings | File Templates.
}
override fun getItemCount(): Int {
return jobList.size//To change body of created functions use File | Settings | File Templates.
}
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
val v=LayoutInflater.from(parent?.context).inflate(R.layout.job_card,parent,false)
return ViewHolder(v)
//To change body of created functions use File | Settings | File Templates.
}
class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
val textViewId = itemView.findViewById<TextView>(R.id.job_id)
val textViewArea = itemView.findViewById<TextView>(R.id.area)
val textViewCarType = itemView.findViewById<TextView>(R.id.car_type)
val textViewCarName = itemView.findViewById<TextView>(R.id.car_name)
val textViewDutyHours = itemView.findViewById<TextView>(R.id.duty_hours)
val textViewWeeklyOff = itemView.findViewById<TextView>(R.id.weekly_off)
val textViewDriverAge = itemView.findViewById<TextView>(R.id.driver_age)
val textViewDriverExperience = itemView.findViewById<TextView>(R.id.driving_experience)
val textViewOutstationDays = itemView.findViewById<TextView>(R.id.outstation_days)
val textViewDutyDetails = itemView.findViewById<TextView>(R.id.duty_details)
val button = itemView.findViewById<Button>(R.id.apply_job)
}}
now how i have to call sendOrder() method in kotline