i'm new in kotlin and i need help!! i have list of 5 stars on the line(like rating bar) and want, for example when you clicked 3d star previous two change color. how can i write it with loop pragmaticaly? with if/else? i hope you help me! thanks!!
task:
// Input - get elements or number or other data
// list of stars (items and index of items)
// rating number (x/5) (number of clicked star)
//
// Loops - FOR - iterate over elements
// Conditions - IF/ELSE - what to do with element
// Action:
// loop over stars (star & indexOfStar)
// set color: (yellow for start behind chosen one including chosen one (rating number))
have this code:
val star1: ImageView = binding.star1
binding.star1.setOnClickListener {
Log.d("Star 1","Rate 1")
star1.setImageDrawable(ContextCompat.getDrawable(star1.context, com.example.godelreviews.R.drawable.star2))}
val star2: ImageView = binding.star2
binding.star2.setOnClickListener {
Log.d("Star 2","Rate 2")
star2.setImageDrawable(ContextCompat.getDrawable(star1.context, com.example.godelreviews.R.drawable.star2))}
val star3: ImageView = binding.star3
binding.star3.setOnClickListener {
Log.d("Star 3","Rate 3")
star3.setImageDrawable(ContextCompat.getDrawable(star1.context, com.example.godelreviews.R.drawable.star2))}
val star4: ImageView = binding.star4
binding.star4.setOnClickListener {
Log.d("Star 4","Rate 4")
star4.setImageDrawable(ContextCompat.getDrawable(star1.context, com.example.godelreviews.R.drawable.star2))}
val star5: ImageView = binding.star5
binding.star5.setOnClickListener {
Log.d("Star 5","Rate 5")
star5.setImageDrawable(ContextCompat.getDrawable(star1.context, com.example.godelreviews.R.drawable.star2))}
return binding.root
}
private fun onRatingChanged(rating: Int){
Log.d("AddPage", "onRatingChanged: $rating/5")
}
private fun getStarRating(): Int{
TODO("Implement")
}
}
now it looks like this:
but i want mark others stars like this:


Modify your code like this, It may work for you -