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:
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;
}
}