4

Background colour is coming from API in this form FFF9E6.I am using data binding.I am not able to understand how I can set it as background colour. I believe binding adapter would work but not sure how to write it. How can I write binding adapter for the same?

2 Answers 2

2

This code worked in my case.

@BindingAdapter("android:backgroundColor") fun ViewGroup.setBackground(backgroundColor: String) { val color: Int = try { Color.parseColor(background) } catch (e: Exception) { Color.parseColor("#$background") } setBackgroundColor(color) } 
Sign up to request clarification or add additional context in comments.

Comments

0

I ran into this same problem a few months back. what I did was stored the data coming from API to one POJO class. Then in an XML file using that POJO class member as data binding variable. i.e.

<TextView android:layout_width="0dp" android:layout_height="60dp" android:layout_margin="@dimen/_8dp" android:layout_weight="1" android:gravity="center" android:padding="@dimen/_8dp" app:color="@{item.color}" /> 

and it's binding adapter

@BindingAdapter("bind:color") public static void setStatus(TextView textView, String color) { } 

7 Comments

I am storing the data in POJO class. The background colour is coming in hex code without the "#". I tried the following:
app:background = "@{'#'+var.color}" . This didn't work
Does it work with a custom getter, e.g: getFullColor() which returns the color code including the hashtag ? Sorry, I'm not yet familiar with databinding.
@humbleDev read the last line of XML file its custom binding. Use custom binding it'll work and you got color in a simple string from right?.there is no direct API for setting background color dynamically passing the hex code. you need to use setBackgroungResource() for that
follow this quetion for that stackoverflow.com/q/1466788/7271231
|

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.