Android 在Fragment中使用DataBinding 如何不在onCreateView 中setData
高洛峰
高洛峰 2016-11-09 11:28:17
0
1
1107

问题对人有帮助,内容完整,我也想知道答案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();
}


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(1)
三叔

一般是设置一个空数据吧。

如果要实现这个功能,可以在 onCreateView() 方法中正常地 inflate 这个布局,保存 view 为全局变量。

获取到数据以后,再进行绑定。


Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template