Wie kann ich von einem asynctask, welches über dem UI-thread ausgeführt wird, einen arrayList an eine ListActitvity übermitteln? Ich bekomme stets nullpointerException (keine ahnung warum). Habe mir inzwischen alles genau angeschaut und finde den Fehler einfach nicht.
die onPostExecute-Methode des AsyncTasks sieht so aus:
public class MainActivity {
.....
PlayListActivity playListActivity;
.....
private class CreateSongList extends AsyncTask<List<Integer>, Void, ArrayList<String>> {
.....
@Override
		protected void onPostExecute(ArrayList<String> result) {
			for(int j = 0; j < result.size(); j++){
				playListActivity.playlist.add(result.get(j));	
			 }
		}
}
	
			Alles anzeigen
	habe auch über den log eintrag result gecheckt : ist ein Stringarray, also alles ok.
die ListActivity:
public class PlayListActivity extends ListActivity {
	
	MainActivity mainActivity;
	public ArrayList<String> playlist;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		if(playlist != null) {
			ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simple_list_item_1, playlist);
			setListAdapter(adapter);
		}
		else {
			Toast.makeText(getApplicationContext(), "Zur Zeit keine Liste verfügbar", Toast.LENGTH_LONG).show();
		}
	}
}
	
			Alles anzeigen
	Fehelrmeldung:
04-23 17:45:14.863: E/AndroidRuntime(11116): FATAL EXCEPTION: main
04-23 17:45:14.863: E/AndroidRuntime(11116): java.lang.NullPointerException
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at com.example.testproject.MainActivity$CreateSongList.onPostExecute(MainActivity.java:231)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at com.example.testproject.MainActivity$CreateSongList.onPostExecute(MainActivity.java:1)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at android.os.AsyncTask.finish(AsyncTask.java:631)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at android.os.AsyncTask.access$600(AsyncTask.java:177)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at android.os.Looper.loop(Looper.java:137)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at android.app.ActivityThread.main(ActivityThread.java:4921)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at java.lang.reflect.Method.invokeNative(Native Method)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at java.lang.reflect.Method.invoke(Method.java:511)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
04-23 17:45:14.863: E/AndroidRuntime(11116): 	at dalvik.system.NativeStart.main(Native Method)
	
			Alles anzeigen
	Was mache ich falsch?? ![]()
Und eine allgemeine Verständnisfrage: Wieviele lists sollte eine anwendung höchstens erstellen? gibt es dafür irgendwelche speziellen regeln oder grenzbereiche, was die performance angeht? Also ab welcher Anzhal es einfluß auf die performance hätte. Destor mehr lists, desto mehr speicher also mehr aufwand -> outofMemory??
Oder ist das schlicht egal!?