数据绑定设置颜色

我尝试使用三元运算符来更改按钮的文本颜色。 类似的东西:这里是xml。数据绑定设置颜色

<Button 

android:id="@+id/actionButton"

android:layout_width="113dp"

android:layout_height="30dp"

android:background="@drawable/button"

android:backgroundTint="@{selected ? R.color.white : R.color.turquoise}"

android:text="@{selected ? &quot;Selected &quot; : &quot;Select &quot;}"

android:textColor="@{selected ? @color/white : @color/turquoise}"

android:onClick="@{(view) -> handler.selectClick(view)}"/>

但颜色设置不正确。我得到一些奇怪的紫色颜色。

我试图

<import type="com.myapp.R" /> 

android:textColor="@{selected ? R.color.white : R.color.turquoise}"

具有相同的结果。
我应该怎么做?

回答:

您的第一个变体应该可以正常工作。您可以参考this doc的“资源”一章。 这是一个完整的工作示例。

colors.xml

<?xml version="1.0" encoding="utf-8"?> 

<resources>

...

<color name="foo">#fff</color>

<color name="bar">#000</color>

</resources>

main_activity.xml

<?xml version="1.0" encoding="utf-8"?> 

<layout xmlns:android="http://schemas.android.com/apk/res/android">

<data>

<variable name="selected" type="boolean" />

<variable name="button2" type="String" />

</data>

<LinearLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/btn_a"

android:onClick="switchColor"

android:text="Click me"/>

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/btn_b"

android:textColor="@{selected ? @color/foo : @color/bar}"

android:text="@{button2}"/>

</LinearLayout>

</layout>

ActivityMain.class

public class ActivityMain extends AppCompatActivity { 

public static final String TAG = "MainActivity";

MainActivityBinding mBinding;

boolean mSelected;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mBinding = DataBindingUtil.setContentView(this, R.layout.main_activity);

mBinding.setButton2("Don't click me please!");

}

public void switchColor(View view) {

mBinding.setSelected(mSelected = !mSelected);

}

}

以上是 数据绑定设置颜色 的全部内容, 来源链接: utcz.com/qa/261534.html

回到顶部