У меня есть ScrollView
, где я добавил несколько buttons
в зависимости от количества ответов, которые я получаю от базы данных на firebase.
private fun onSurveyLoaded(survey: Survey?) {
survey?.let {
survey_question.text = it.title
val ll = LinearLayout(context)
ll.orientation = LinearLayout.VERTICAL
if (it.answer_a.isNotEmpty()){
createButton(it.answer_a, ll)
}
if (it.answer_b.isNotEmpty()) createButton(it.answer_b, ll)
if (it.answer_c.isNotEmpty()) createButton(it.answer_c, ll)
if (it.answer_d.isNotEmpty()) createButton(it.answer_d, ll)
if (it.answer_e.isNotEmpty()) createButton(it.answer_e, ll)
response_list.addView(ll)
}
}
private fun createButton(text: String, ll: LinearLayout): View {
val view = (requireContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater)
.inflate(R.layout.survey_item, ll, false)
lateinit var letter: String
when(numberOfAnswer){
0 -> letter = "A"
1 -> letter = "B"
2 -> letter = "C"
3 -> letter = "D"
4 -> letter = "E"
}
numberOfAnswer++
val str = SpannableString("$letter. $text")
str.setSpan(ForegroundColorSpan(ResourcesCompat.getColor(resources, R.color.colorPrimary, null)), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
str.setSpan(StyleSpan(BOLD), 0,1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
view.survey_response.text = str
ll.addView(view)
return view
}
Расположение кнопок определено в макет файла survey_item.xml
, в котором я использовал кнопки материала.
Кнопки визуализированы правильно, но проблема в том, что я не знаю, как изменить цвет фона кнопок. Я хочу, чтобы при нажатии кнопки ее цвет стал зеленым, а по умолчанию - белым.