#android #kotlin #fragment
#Android #котлин #фрагмент
Вопрос:
Я хочу изменить цвет кнопки во фрагменте, управляя другой кнопкой в MainActivity.
Код для фрагмента :
lass build_8p : Fragment() {
var brush_chosen = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val brush_color = arguments?.getString("brush")
ib0.setOnClickListener {
if (brush_chosen==1)
{
//val con = this.context
DrawableCompat.setTint(ib0.drawable, ContextCompat.getColor(this.context,R.color.rndcolor1))
}
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_build_8p, container, false)
}
Переменная brush_chosen будет взята из MainActivity .
Здесь я хочу знать, как ввести правильный ввод для DrawableCompat.setTint(ib0.drawable, ContextCompat.getColor(this.context,R.color.rndcolor1)) }
Поскольку эта строка не работает.
Пожалуйста, скажите мне, как и большое вам спасибо.
Комментарии:
1. В чем именно ошибка? Что не найдено?
Ответ №1:
Вы можете просто использовать requireContext():
DrawableCompat.setTint(ib0.drawable, ContextCompat.getColor(requireContext(),R.color.rndcolor1))
Ответ №2:
Чтобы использовать контекст фрагмента :
DrawableCompat.setTint(ib0.drawable, ContextCompat.getColor(requireContext(),R.color.rndcolor1))
Чтобы использовать контекст действия :
DrawableCompat.setTint(ib0.drawable, ContextCompat.getColor(requireActivity(),R.color.rndcolor1))
оба должны работать в вашем случае