搜尋

首頁  >  問答  >  主體

Android 在Fragment中使用DataBinding 如何不在onCreateView 中setData

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


高洛峰高洛峰2931 天前1104

全部回覆(1)我來回復

  • 三叔

    三叔2016-11-09 11:28:38

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

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

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


    回覆
    0
  • 取消回覆