我想根据内容更改cardview的边框颜色。是否可以通过recyclerview适配器以某种方式获取xml文件并更改颜色?
答案 0 :(得分:0)
来自recyclerview适配器的xml文件并更改颜色?
没有。 XML是只读的。你不需要触摸它,但使用i.f. findViewById()
,找到您的卡片视图,并使用其方法更改颜色。
答案 1 :(得分:0)
使用Databinding
库可以实现这一点
假设您的内容为User
,如果他/她是成人或儿童,您需要更改CardView
的颜色。因此,您可以像这样传递Activity或Fragment中的对象:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
User user = new User("Test", "User");
binding.setUser(user);
}
然后,在data
文件中添加XML
标记和变量:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<android.support.v7.widget.CardView
android:background="@{user.isAdult ? @color/yellow : @color/gray }"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"/>
</android.support.v7.widget.CardView>
</layout>
如果您想了解更多信息,请查看文档:{{3}}