Hallo,
ich habe eine LIstview, in der ich bei onResume die Elemente ändern möchte.
In der Liste werden Kapitel angezeigt.
Beim klick auf ein Element wird eine neue Activity aufgerufen, in der das Kapitel angezeigt wird.
Darunter sind 3 Buttons:
1. Zum vorherigen Kapitel wechseln
2. Zum nächsten Kapitel wechseln
3. Zur LIste zurück.
Nun habe ich das Problem, dass ich bei onResume keinen Zugriff auf das Array der Listenelemente habe.
Was muss ich ändern?
Listview Class
Java
		
					
			import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class EBook<T> extends Activity {
	public static final String PREFS_NAME = "MyPrefsFile";
	String myChapter;
	public static ArrayAdapter adapter;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.ebook);
		
  		// Zuletzt aufgerufenes Kapitel ermitteln
  		SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  	  	myChapter = settings.getString("chapter", "");
  	  	// Kapitelliste belegen
  	  	final String[] chapters = getResources().getStringArray(R.array.chapterlist);
  	  
  	  	// Aktuelles Kapitel markieren (*)
		for (int i=0; i<chapters.length; i++) {
			if (myChapter.compareTo(chapters[i]) == 0) {
				chapters[i] = "*"+chapters[i];
			}
		}
		// Listview anzeigen
		final ListView lv = (ListView) findViewById(R.id.listView1);
		adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, chapters);
		lv.setAdapter(adapter);
		
		lv.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
				Intent intent = new Intent();
				intent.setClassName(getPackageName(), getPackageName()+".Chapter");
				myChapter = lv.getAdapter().getItem(arg2).toString();
				if (myChapter.startsWith("*")) {
					myChapter = myChapter.substring(1);
				}
		  		// Ausgewähltes Kapitel speichern
		  		SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
		  		SharedPreferences.Editor editor = settings.edit();
		  		editor.putString("chapter", myChapter);
		  		editor.commit();
				intent.putExtra("selected", lv.getAdapter().getItem(arg2).toString());
				startActivity(intent);
			}
		});
	}
  	@Override
  	protected void onResume() {
  		super.onResume();
  		// Aktuelles Kapitel lesen, um in der Liste mit (*) zu markieren. 
  		SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  	  	myChapter = settings.getString("chapter", "");
  	  	Toast.makeText(getApplicationContext(), "Kapitel:"+myChapter, Toast.LENGTH_SHORT).show();
  	  	
  	  	// Hier möchte ich das entsprechende Listenelement (chapter[i]) ändern,
  	  	// aber ich habe keinen Zugriff auf das Array.
/*
  	  	for (int i=0; i<chapters.length; i++) {
			if (chapters[i].substring(0, 1).compareTo("*") == 0) {
				chapters[i] = chapters[i].substring(1);
			}
			if (myChapter.compareTo(chapters[i]) == 0) {
				chapters[i] = "*"+chapters[i];
			}
		}
*/
		adapter.notifyDataSetChanged();
  	}
}Kapitelausgabe Class
Java
		
					
			import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.Handler;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
public class Chapter extends Activity {
	public static final String PREFS_NAME = "MyPrefsFile";
	String chapter, chapterstar, datei, prevchapter, nextchapter, mychapter;
	int currentSize, myCurrentSize, myPostionX;
	WebView mWebView;
  	public void onCreate(Bundle savedInstanceState) {
  		super.onCreate(savedInstanceState);
  		setContentView(R.layout.chapter);
  		
  		final String[] chapters = getResources().getStringArray(R.array.chapterlist);
  		
		Intent intent = getIntent();
		chapter = intent.getStringExtra("selected");
		if (chapter.substring(0, 1).compareTo("*") == 0) {
			// Letzte Scroll-Position und Schriftgroesse lesen
			SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
			myPostionX = settings.getInt("positionX", 0);
			myCurrentSize = settings.getInt("currentSize", 16);
		} else {
			myPostionX = 0;
			myCurrentSize = 16;
		}
		// Vorheriges und nächstes Kapitel belegen
		for (int i=0; i<chapters.length; i++) {
			if (chapter.compareTo(chapters[i]) == 0) {
				if (i==0) { prevchapter = ""; } else { prevchapter = chapters[i-1]; }
				if (i==chapters.length-1) { nextchapter = ""; } else { nextchapter = chapters[i+1]; }
			}
		}
  		
		// Kapitel in WebView ausgeben
  		mWebView = (WebView) findViewById(R.id.webChapter);
  		mWebView.getSettings().setJavaScriptEnabled(true);
  		mWebView.loadUrl("file:///android_asset/ebook/"+chapter+".html");
  		mWebView.setWebViewClient(new WebViewClient() {
  			public void onPageFinished(WebView view, String url) {
  		  		// SLEEP 1.5 SECONDS HERE ...
  		  		Handler handler = new Handler(); 
  		  		handler.postDelayed(new Runnable() { 
  		  			public void run() {
  		  				// Schriftgroesse festlegen und zu letzter Position scrollen
						mWebView.getSettings().setDefaultFontSize(myCurrentSize);
						mWebView.scrollTo(0, myPostionX);
						Toast.makeText(getApplicationContext(), "Position:"+myPostionX+"\nSize:"+myCurrentSize, Toast.LENGTH_SHORT).show();
  		  			} 
  		  		}, 1500);
  			}
   		});
  		
  		// Zum vorherigen Kapitel wechseln
		final Button prevbutton = (Button) findViewById(R.id.prev);
		prevbutton.setText(prevchapter);
		prevbutton.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClassName(getPackageName(), getPackageName()+".Chapter");
				intent.putExtra("selected", prevchapter);
				startActivity(intent);
				finish();
			}
		});
		
		// Zur ListView zurück
		final Button indexbutton = (Button) findViewById(R.id.index);
		indexbutton.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
		  		myCurrentSize = mWebView.getSettings().getDefaultFontSize();
		  		myPostionX = mWebView.getScrollY();
		  		// Aktuelles Kapitel, Schriftgroesse und Scroll-Position ermitteln und speichern
		  		SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
		  		SharedPreferences.Editor editor = settings.edit();
		  		editor.putString("chapter", chapter);
		  		editor.putInt("positionX", myPostionX);
		  		editor.putInt("currentSize", myCurrentSize);
		  		editor.commit();
				finish();
			}
		});
		
		// Zum nächsten Kapitel wechseln
		final Button nextbutton = (Button) findViewById(R.id.next);
		nextbutton.setText(nextchapter);
		nextbutton.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClassName(getPackageName(), getPackageName()+".Chapter");
				intent.putExtra("selected", nextchapter);
				startActivity(intent);
				finish();
			}
		});
  	}
  	@Override
  	protected void onPause() {
  		super.onPause();
  		myCurrentSize = mWebView.getSettings().getDefaultFontSize();
  		myPostionX = mWebView.getScrollY();
  		// Aktuelles Kapitel, Schriftgroesse und Scroll-Position ermitteln und speichern
  		SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  		SharedPreferences.Editor editor = settings.edit();
  		editor.putString("chapter", chapter);
  		editor.putInt("positionX", myPostionX);
  		editor.putInt("currentSize", myCurrentSize);
  		editor.commit();
	}
  	protected void onResume() {
  		super.onResume();
		if (chapter.substring(0, 1).compareTo("*") == 0) {
			// Letzte Scroll-Position und Schriftgroesse lesen
			SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
			myPostionX = settings.getInt("positionX", 0);
			myCurrentSize = settings.getInt("currentSize", 16);
		} else {
			myPostionX = 0;
			myCurrentSize = 16;
		}
		mWebView.getSettings().setDefaultFontSize(myCurrentSize);
		mWebView.scrollTo(0, myPostionX);
  	}
} 
		