Ich versuche, eine Spinner-Ansicht von einem hinzugefügten Fragment
zu meiner Aktivität zu bekommen, aber es scheint, dass ich weder das Fragment noch die Ansicht bekommen kann.Suche nach Fragmentansicht der Aktivität. Android findFragmentByTag (String-Tag) gibt null zurück
Ich habe eine Aktivität, die ein Fragment
fügt es LinearLayout
ist, das Layout des Fragments auf dem ‚Extra‘ basiert, die von der Absicht der Aktivität kommt. Alles wird korrekt angezeigt, und ich kann alle Ansichten des Fragments sehen, aber aus irgendeinem Grund, wenn ich findFragmentByTag(String tag)
rufe, gibt es null zurück und daher kann ich getView() nicht aufrufen.
Hier ist, wie ich das Fragment Code meiner Tätigkeit bin Zusatz:
...onCreate(){
...
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fr = new Fragment(){
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(layoutID, container, false);
}
};
ft.add(R.id.formsListActivity_Container, fr, "form_fragment_tag");
ft.commit();
...
}
Dann versuche ich solches Fragment zu erhalten und eine des Spinners Ansicht zu erhalten, um die String-Array hinzuzufügen:
Fragment f = fm.findFragmentByTag("form_fragment_tag");
Spinner spinner = (Spinner) f.getView().findViewById(R.id.city_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.city_list, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Aber ich habe eine null-Ausnahme, weil findFragmentByTag() gibt null
Was mache ich falsch? Ich habe den Code einige Male verifiziert und die Tags sind identisch. Ich habe auch sichergestellt, dass die ID des Spinner korrekt in der XML-Layout-Datei ist, und das Fragment lädt das richtige XML-Layout, weil ich es sehen kann (Wenn ein Kommentar die Ansicht von Fragment-Teil bekommen).
Ich weiß, dass dieser Beitrag alt ist, aber wenn Sie das 'Fragment' in eine eigene Klasse stellen, wird es viel einfacher. – JDJ