我正在使用Butterknife在我的一個片段中綁定單個視圖。我已經使用Butterknife在單獨的片段中沒有問題,但由於某種原因,在此片段中,綁定視圖爲空。我正在嘗試添加一個子佈局,並且正在接收NPE,但我無法弄清楚原因。我在這個片段中的設置與我在其他片段中完全一樣的設置相同。當在片段中使用Butterknife時,綁定視圖爲空
這是包含Butterknife代碼片段的片段。
private View view;
@BindView(R.id.layoutHolder)
LinearLayout layoutHolder;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_log, container, false);
ButterKnife.setDebug(true);
ButterKnife.bind(this, view);
return view;
}
這是拋出NPE的方法。
private void addLayoutToHolder(LinearLayout layout) {
layoutHolder.addView(layout, 0);
}
以下是錯誤:
java.lang.NullPointerException: Attempt to invoke virtual method
'void android.widget.LinearLayout.addView(android.view.View, int)'
on a null object reference
at com.omitted.LogFragment.addLayoutToHolder(LogFragment.java:101)
下面是Butterknife.setdebug輸出,這似乎是罰款。
Looking up view binder for com.omitted.LogFragment
HIT: Loaded view binder class.
Looking up view binder for com.omitted.CalculatorFragment
HIT: Loaded view binder class.
我也檢查,以確保layoutHolder確實爲null,它是。但對於我的生活,我無法弄清楚爲什麼。
我可以在向它添加布局之前分配layoutHolder,它工作得很好。
private void addLayoutToHolder(LinearLayout layout) {
layoutHolder = ButterKnife.findById(view, R.id.layoutHolder);
layoutHolder.addView(layout, 0);
}
所以它適用於現在,但我不明白爲什麼在地獄Butterknife.bind我onCreateView沒有正確結合的觀點。
我希望我能夠很好地描述這個問題...
感謝您的任何見解。
差不多一個星期。沒有人有任何想法? –
是一個問題解決了嗎?\ – piotrek1543