ListView in einem Fragment

M

Manuel1805

Ambitioniertes Mitglied
2
Hallo zusammen,

ich versuche in einem Fragment eine ListView mit einem ArrayAdapter zu befüllen. Leider bekomme ich eine NullpointerException :drool:

in folgender Zeile:

listView.setAdapter(adapter);
...onCreatView(Uebungen.java:29)...

Was mache ich falsch?

Code:
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Uebungen extends Fragment {

	String[] kapitel = new String[] { "Thema1", "Thema2","Thema3","Thema4" };
	ListView listView;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {

		View view = inflater.inflate(R.layout.u_listview, container, false);
		listView = (ListView) this.getActivity().findViewById(R.id.lv1);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				this.getActivity(), android.R.layout.simple_list_item_1,
				kapitel);

		[B]listView.setAdapter(adapter);[/B] //!!hier ist die Fehlerzeile!!

		return view;

	}

}
 
Du hast die View in das Fragment inflated, versuchst sie aber aus der Activity wieder rauszuholen.
In einem Fragment kannst du entweder this.getView().findViewById(...) aufrufen oder onViewCreated überschreiben und dort in der rootView nach deiner View suchen.

Wenn du nicht die Support Library verwendest kannst du aber stattdessen auch ein ListFragment benutzen, dann brauchst du gar kein eigenes Layout (vorrausgesetzt du hast dort nur eine ListView drin)
 
  • Danke
Reaktionen: Manuel1805
Super, danke für die Lösung.

Ich habe das Problem nun, dank Dir, wie folgt gelöst:

Code:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {

		[B]View view = inflater.inflate(R.layout.u_listview, container, false);
		listView = (ListView) view.findViewById(R.id.lv1);[/B]
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				this.getActivity(), android.R.layout.simple_list_item_1,
				kapitel);

		listView.setAdapter(adapter);

		return view;

	}
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.021
swa00
swa00
OnkelLon
Antworten
13
Aufrufe
1.981
OnkelLon
OnkelLon
Zurück
Oben Unten