Skip to content

Instantly share code, notes, and snippets.

@SurajBahadur
Created August 9, 2019 09:57
Show Gist options
  • Save SurajBahadur/5ecce254df48aa7ba48fc129f34ec977 to your computer and use it in GitHub Desktop.
Save SurajBahadur/5ecce254df48aa7ba48fc129f34ec977 to your computer and use it in GitHub Desktop.
Example of populating recycleview with adater data in kotlin
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.app.base.R
import com.app.base.bean.DailyModel
import kotlinx.android.synthetic.main.item_daily.view.*
class DailyAdapter(private val dailyList: ArrayList<DailyModel>) : RecyclerView.Adapter<DailyAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.item_daily, parent, false)
return ViewHolder(v)
}
override fun getItemCount(): Int {
return dailyList.size
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bindItem(dailyList[position])
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bindItem(model: DailyModel) {
itemView.tv_title.text = model.title
itemView.tv_time.text = model.time
}
}
}
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.app.base.R
import com.app.base.base_classes.BaseFragment
import com.app.base.bean.DailyModel
import com.app.base.ui.dashboard.home.adapter.DailyAdapter
import com.app.base.ui.dashboard.home.adapter.LeaderBoardAdapter
import kotlinx.android.synthetic.main.home_fragment.*
class HomeFragment : BaseFragment() {
private lateinit var mDailyAdapter: DailyAdapter
private val mDailyList: ArrayList<DailyModel>? = ArrayList()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.home_fragment, container, false)
}
@SuppressLint("WrongConstant")
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
initAdapters()
//adding data to list
mDailyList!!.add(DailyModel("Todo 1", "10:30 PM"))
mDailyList.add(DailyModel("Todo 2", "5:00 AM"))
mDailyList.add(DailyModel("Todo 3", "6:00 AM"))
mDailyList.add(DailyModel("Todo 4", "7:00 AM"))
mDailyList.add(DailyModel("Todo 5", "2:00 AM"))
mDailyList.add(DailyModel("Todo 6", "15:00 AM"))
mDailyList.add(DailyModel("Todo 7", "1:00 AM"))
//setting data to adapter
mDailyAdapter = DailyAdapter(mDailyList)
rv_daily_list.adapter = mDailyAdapter
}
private fun initAdapters() {
rv_daily_list.layoutManager = LinearLayoutManager(activity)
rv_daily_list.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
}
}
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
card_view:cardElevation="2dp"
card_view:rippleColor="#cfd8dc"
android:clickable="true"
card_view:cardCornerRadius="5dp"
card_view:cardUseCompatPadding="true"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/_70sdp"
android:background="#FAFAFA"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="@dimen/_30sdp"
android:layout_height="@dimen/_30sdp"
android:background="@drawable/ic_account"
app:civ_border_color="#FF000000"
app:civ_border_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="Ross Taylor"
android:textSize="@dimen/_16ssp"
app:layout_constraintBottom_toBottomOf="@+id/profile_image"
app:layout_constraintEnd_toStartOf="@+id/tv_time"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/profile_image"
app:layout_constraintTop_toTopOf="@+id/profile_image"
app:layout_constraintVertical_bias="0.35000002" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text="10:30 PM"
app:layout_constraintBottom_toBottomOf="@+id/tv_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/tv_title"
app:layout_constraintTop_toTopOf="@+id/tv_title"
app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment