2
我的代碼有一個問題,讓我瘋狂。我的Fragment
中使用DataBinding
。充氣後自定義視圖的字段爲空 - 數據綁定
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_appointment, container, false);
mViewModel = new AppointmentViewModel(((DetailActivity) getActivity()).getSalonId());
mBinding.setViewModel(mViewModel);
mBinding.datePopup.setViewModel(mViewModel);
並希望在我的CustomView
public class DatePopupView extends FrameLayout {
private Date mPickedDate = null;
private CustomDatePopupViewBinding mBinding = null;
public DatePopupView(Context context) {
super(context);
setup();
}
public DatePopupView(Context context, AttributeSet attrs) {
super(context, attrs);
setup();
}
public void setup() {
mPickedDate = new Date();
LayoutInflater inflater = LayoutInflater.from(getContext());
mBinding = CustomDatePopupViewBinding.inflate(inflater, this, true);}
使用DataBinding
也與膨脹在onCreateView
完成後,這就是所謂的在同一個CustomView
類:
public void setViewModel(AppointmentViewModel viewModel) {
mBinding.setViewModel(viewModel);
}
的問題是我在這個方法中得到了一個NullPointerException
。
在我看來,這是不可能的,因爲CustomView
對象已經實例化並設置了字段。
如果不是,我不能訪問CustomView
到mBinding.datePopup
。
請幫我理解這一點,P
感謝;)
謝謝。 我正在使用2.2 Preview7 – Appyx
我正在使用2.2 Preview 7,現在使用2.2 Beta-1。仍然沒有工作:( –
這可能不是同一個bug,你可以發佈一個鏈接到一個重現問題的項目,或者在Android.com上提交一個錯誤? –