问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地
在xml文件中用到了Float.valueOf()方法
如果不在Fragment中的onCreateView中设置有值的Data,则会报错误
onCreateView中设置非空的Data或者XML中删除Float.ValueOf()则正常
问题是数据是通过网络请求得到的,不能在onCreateView中获取数据。
所以想知道有没有更好的解决办法。
XML文件
<TextView android:id="@+id/limitPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="@{operation.limitPrice}" android:textColor='@{Float.valueOf(operation.limitPrice)>Float.valueOf(operation.newPrice)?@color/red : @color/green}' android:textSize="18sp" />
Fragment文件(取消注释后正常)
@Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { dataBind = DataBindingUtil.inflate(inflater, R.layout.fragment_operation_details, container, false); /*OperationBean bean = new OperationBean(); bean.setLimitPrice("12"); bean.setNewPrice("21"); dataBind.setOperation(bean);*/ return dataBind.getRoot(); }
一般是设置一个空数据吧。
如果要实现这个功能,可以在 onCreateView() 方法中正常地 inflate 这个布局,保存 view 为全局变量。
获取到数据以后,再进行绑定。