ViewPager - Refresh/Update Verzögerung

M

Manuel1805

Ambitioniertes Mitglied
2
Hallo zusammen,

in meiner App habe ich einen ViewPager mit mehreren Seiten implementiert.
In diesem ViewPager befinden sich mehrere Seiten, u.a. mit Fragen und dazugehörigen Antwortbutton. Beim Drücken des Antwortbuttons wird die Antwort in ein Array geschrieben. Das funktioniert grds. auch. Allerdings erst wenn ich zur übernächsten Seite wechsel. Z.B. von Seite 1 auf Seite 3. Gibt es eine Möglichkeit die Befüllung des Arrays zu refreshen/updaten?
Über einen Tipp würde ich mich freuen.

Anbei mein verkürzter Code:
Code:
public class SinnPageAdapter extends PagerAdapter {

	Context context;

	public SinnPageAdapter(Context context) {
		this.context = context;
	}

	public int[] getPunkte() {
		return this.punkte;
	}

	public void setPunkte(int Punkte[]) {
		this.punkte=Punkte;
	}

	private int punkte[] = new int[8];

	public void punkteVergeben(int Aufgabe, int Punkt) {
		this.punkte[Aufgabe] = Punkt;

	}

	public int seite;
	int maxSeitenzahl = 36;
	TextView frage;

	Button antwort11;
	Button antwort12;
	Button antwort13;
	Button antwort14;

	private OnClickListener frage1 = new OnClickListener() {

		@Override
		public void onClick(View v) {

			animieren(v);

			if (v == antwort11) { // richtig
				richtigToast();
				punkteVergeben(0,1);
			} else if (v == antwort12) { // falsch
				falschToast();
				punkteVergeben(0, 0);

			} else if (v == antwort13) { // falsch
				falschToast();
				punkteVergeben(0, 0);

			} else if (v == antwort14) { // richtig
				richtigToast();
				punkteVergeben(0, 1);

			}
			antwort11.setEnabled(false);
			antwort12.setEnabled(false);
			antwort13.setEnabled(false);
			antwort14.setEnabled(false);
		}
	};

		public int getCount() {
		return 46;
	}

	public Object instantiateItem(View collection, int position) {

		LayoutInflater inflater = (LayoutInflater) collection.getContext()
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

		int resId = 0;
		switch (position) {
		case 0:
			resId = R.layout.a_titel_inhalt_startseite;
			seite = 1;
			break;
		case 1:
			resId = R.layout.a_titel_inhalt;
			seite = 2;
			break;
		case 2:
			resId = R.layout.a_inhalt;
			seite = 3;
			break;
		case 3:
			resId = R.layout.a_inhalt;
			seite = 4;
			break;
		case 4:
			resId = R.layout.a_frage_4_antworten;
			seite = 5;
			break;
		..
		case 45:
			resId = R.layout.a_titel_inhalt;
			seite = 46;
			break;
		}

		View view = inflater.inflate(resId, null);

		if (seite == 1) {
			titel = (TextView) view.findViewById(R.id.a_tis_titel);
			titel.setText("Grundlagen");

			titelInhalt = (TextView) view.findViewById(R.id.a_tis_inhalt);
			titelInhalttext = Html
					.fromHtml("text...");

			titelInhalt.setText(titelInhalttext);
			folienAnzahl = (TextView)view.findViewById(R.id.a_tis_folien_text);
			folienAnzahl.setText("36 Seiten");
			
			folienDauer = (TextView)view.findViewById(R.id.a_tis_zeit_text);
			folienDauer.setText("20 min.");
			

		} else if (seite == 5) {

			frage = (TextView) view.findViewById(R.id.a_frage);
			frage.setText("Was ist 1 + 1");

			antwort11 = (Button) view.findViewById(R.id.a_antwort1);
			antwort12 = (Button) view.findViewById(R.id.a_antwort2);
			antwort13 = (Button) view.findViewById(R.id.a_antwort3);
			antwort14 = (Button) view.findViewById(R.id.a_antwort4);

			antwort11.setText("2");
			antwort12.setText("4");
			antwort13.setText("3");
			antwort14.setText("2");

			antwort11.setOnClickListener(frage1); // richtig
			antwort12.setOnClickListener(frage1); // falsch
			antwort13.setOnClickListener(frage1); // falsch
			antwort14.setOnClickListener(frage1); // richtig

		...

		} else if (seite == 46) {

			titel = (TextView) view.findViewById(R.id.a_ti_titel);
			titel.setText("Zusammenfassung");

			titelInhalt = (TextView) view.findViewById(R.id.a_ti_inhalt);

			titelInhalttext = Html.fromHtml("1. Übung: "
					+ String.valueOf(punkte[0]) + "<br/>" + "2. Übung: "
					+ String.valueOf(punkte[1]) + "<br/>" + "3. Übung: "
					+ String.valueOf(punkte[2]) + "<br/>" + "4. Übung: "
					+ String.valueOf(punkte[3]) + "<br/>" + "5. Übung: "
					+ String.valueOf(punkte[4]) + "<br/>" + "6. Übung: "
					+ String.valueOf(punkte[5]) + "<br/>" + "7. Übung: "
					+ String.valueOf(punkte[6]) + "<br/>" + "8. Übung: "
					+ String.valueOf(punkte[7]) + "<br/>");

			titelInhalt.setText(titelInhalttext);
			seite_von_bis = (TextView) view
					.findViewById(R.id.a_ti_seite_von_bis);
	
		}

		((ViewPager) collection).addView(view, 0);

		return view;
	}
	
		@Override
	public void destroyItem(View arg0, int arg1, Object arg2) {
		((ViewPager) arg0).removeView((View) arg2);
	}

	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		return arg0 == ((View) arg1);
	}

	@Override
	public Parcelable saveState() {
		return null;
	}

}
 
Leider verstehe ich das nicht. Welche Passage meinst Du? :confused2:

...meine Klasse mit der ich den Adapter aufrufe sieht wie folgt aus:


Code:
public Sinn() {

	}

	private int sinnPunkte[] = new int[8];

	public ViewPager viewPager;
	SinnPageAdapter adapter;

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

		View view = inflater.inflate(R.layout.start_kapitel, container, false);

		// ViewPager initialisieren
		adapter = new SinnPageAdapter(this.getActivity());
		viewPager = (ViewPager) view.findViewById(R.id.viewPager);
		viewPager.setAdapter(adapter);
		// starte mit erstem Layout
		viewPager.setCurrentItem(0);
		
		laden();
		adapter.setPunkte(this.sinnPunkte);

		return view;

	}
	
	

	@Override
	public void onResume() {
		sinnPunkte = adapter.getPunkte();
		this.speichern();
		super.onResume();

	}

	public void onPause() {
		sinnPunkte = adapter.getPunkte();
		this.speichern();
		super.onPause();
	}
	

	public void speichern() {
		SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE);
		SharedPreferences.Editor meinEditor = prefs.edit();
		meinEditor.putInt("1",this.sinnPunkte[0]);
		meinEditor.putInt("2",this.sinnPunkte[1]);
		meinEditor.putInt("3",this.sinnPunkte[2]);
		meinEditor.putInt("4",this.sinnPunkte[3]);
		meinEditor.putInt("5",this.sinnPunkte[4]);
		meinEditor.putInt("6",this.sinnPunkte[5]);
		meinEditor.putInt("7",this.sinnPunkte[6]);
		meinEditor.putInt("8",this.sinnPunkte[7]);
		
		meinEditor.apply();
	}

	public void laden(){
		SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE);
		//SharedPreferences.Editor meinEditor = prefs.edit();
		this.sinnPunkte[0] = prefs.getInt("1", 0);
		this.sinnPunkte[1] = prefs.getInt("2", 0);
		this.sinnPunkte[2] = prefs.getInt("3", 0);
		this.sinnPunkte[3] = prefs.getInt("4", 0);
		this.sinnPunkte[4] = prefs.getInt("5", 0);
		this.sinnPunkte[5] = prefs.getInt("6", 0);
		this.sinnPunkte[6] = prefs.getInt("7", 0);
		this.sinnPunkte[7] = prefs.getInt("8", 0);
		
		
	}
 

Ähnliche Themen

J
  • Juleru
Antworten
8
Aufrufe
478
Juleru
J
Tiefkuehlpizza
Antworten
2
Aufrufe
931
Tiefkuehlpizza
Tiefkuehlpizza
N
  • no1Ltan
Antworten
12
Aufrufe
1.732
jogimuc
J
Zurück
Oben Unten