Ich benutze Butterknife, um eine einzelne Ansicht in eines meiner Fragmente zu binden. Ich habe Butterknife ohne Problem in einem separaten Fragment verwendet, aber aus irgendeinem Grund ist in diesem Fragment die gebundene Ansicht null. Ich versuche, ein Kind Layout hinzuzufügen, und ich erhalte eine NPE und ich kann nicht herausfinden, warum. Das Setup, das ich in diesem Fragment habe, ist dasselbe wie in meinem anderen Fragment, das perfekt funktioniert.Gebundene Ansicht ist null, wenn Buttermesser im Fragment verwendet wird
Dies ist ein Ausschnitt aus dem Fragment mit dem Butterknife-Code.
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;
}
Dies ist die Methode, die die NPE wirft. Hier
private void addLayoutToHolder(LinearLayout layout) {
layoutHolder.addView(layout, 0);
}
ist der Fehler:
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)
Hier ist die Ausgabe von Butterknife.setdebug, was in Ordnung zu sein scheint.
Ich überprüft auch, um sicherzustellen, dass layoutHolder tatsächlich null ist, und es ist. Aber für das Leben von mir kann ich nicht herausfinden warum.
Ich kann LayoutHolder zuweisen, bevor ich ein Layout hinzufügen, und es funktioniert gut.
private void addLayoutToHolder(LinearLayout layout) {
layoutHolder = ButterKnife.findById(view, R.id.layoutHolder);
layoutHolder.addView(layout, 0);
}
So funktioniert es für jetzt, aber ich verstehe nicht, warum in der Hölle Butterknife.bind in meinem onCreateView ist nicht richtig die Ansicht verbindlich.
Ich hoffe, dass ich dieses Problem beschrieben gut genug ...
Vielen Dank für jede Einsicht.
Schon fast eine Woche. Niemand hat eine Idee? –
ist ein Problem gelöst? \ – piotrek1543