J'utilise Butterknife pour lier une seule vue dans un de mes fragments. J'ai utilisé Butterknife sans problème dans un fragment séparé, mais pour une raison quelconque dans ce fragment, la vue liée est nulle. J'essaie d'ajouter une mise en page enfant et je reçois un NPE et je ne peux pas comprendre pourquoi. La configuration que j'ai dans ce fragment est la même que celle que j'ai dans mon autre fragment qui fonctionne parfaitement.La vue liée est nulle lors de l'utilisation de Butterknife dans le fragment
Ceci est un extrait du fragment incluant le code 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;
}
C'est la méthode qui lance le NPE.
private void addLayoutToHolder(LinearLayout layout) {
layoutHolder.addView(layout, 0);
}
Voici l'erreur:
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)
Voici la sortie de Butterknife.setdebug, qui semble être bien. J'ai également vérifié pour s'assurer que layoutHolder est en effet null, et c'est le cas. Mais pour la vie de moi, je ne peux pas comprendre pourquoi.
Je peux assigner layoutHolder juste avant que j'ajoute une mise en page, et cela fonctionne très bien.
private void addLayoutToHolder(LinearLayout layout) {
layoutHolder = ButterKnife.findById(view, R.id.layoutHolder);
layoutHolder.addView(layout, 0);
}
Il fonctionne pour l'instant, mais je ne comprends pas pourquoi dans l'enfer Butterknife.bind dans mon onCreateView ne lie pas correctement la vue.
J'espère que décrit ce problème assez bien ...
Merci pour toute perspicacité.
Été presque une semaine. Personne n'a d'idée? –
est un problème résolu? – piotrek1543