Skip to content

Instantly share code, notes, and snippets.

View etonotieno's full-sized avatar
💻

Eton Otieno etonotieno

💻
View GitHub Profile
class NewsAdapter : ListAdapter<News, NewsViewHolder>(COMPARATOR){
override fun onCreateViewHolder(parent :ViewGroup, viewType :Int) : NewsViswHolder{
val binding :ItemLayoutBinding = DataBindingUtil.inflate(layoutInflater, R.layout.item_layout, parent, false)
return NewsViewHolder(binding)
}
override fun onBindViewHolder(holder :NewsViewHolder, position :Int{
holder.binding.newsArticle = getItem(position)
}
class NewsActivity : BaseActivity() {
private val newsViewModel = ViewModelProviders.of(this).get(NewsViewModel::class.java)
override fun onCreate(savedInstanceState :Bundle?) {
super.onCreate(savedInstanceState)
val newsBinding :ActivityNewsBinding = DataBindingUtil.setContentView(this, R.layout.activity_news)
newsBinding.setLifecycleOwner(this)
newsBinding.newsViewModel = newsViewModel
}
}
@BindingAdapter("image", "placeholderImage", "errorImage", requireAll=true)
fun loadImageForView(view: ImageView, imageUrl: String, errorImage: Drawable, placeholderImage: Drawable) {
Picasso.get().load(imageUrl).placeholder(placeholderImage).error(errorImage).into(view)
}
<layout>
<data>
<variable name="newsArticle" type="com.edoubletech.newsfeed.model.News"/>
</data>
<ConstraintLayout
<TextView android:text="@{newsArticle.title}" />
<TextView android:text="@{newsArticle.content}"/>
<ImageView
app:image="@{newsArticle.imageUrl}"
app:errorImage="@{@drawable/error}"