2016-08-05 73 views
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對象已經實例化並設置了字段。

如果不是,我不能訪問CustomViewmBinding.datePopup

請幫我理解這一點,P

感謝;)

回答

2

這是一個應該被固定在Android的Studio 2.2中釋放的錯誤。如果它是相同的錯誤,則數據綁定框架在綁定外部視圖(FragmentAppointmentBinding)時不會正確忽略已作爲構造函數的一部分膨脹的已綁定視圖。

+0

謝謝。 我正在使用2.2 Preview7 – Appyx

+0

我正在使用2.2 Preview 7,現在使用2.2 Beta-1。仍然沒有工作:( –

+0

這可能不是同一個bug,你可以發佈一個鏈接到一個重現問題的項目,或者在Android.com上提交一個錯誤? –

相關問題