Y
Yrrel
Neues Mitglied
- 0
Hallo an alle. Dies ist mein erster Beitrag in diesem Forum, deswegen falls ich etwas im falschen Topic habe bitte einfach freundlich darauf hinweisen und ich werde das beheben^^.
Zu meiner Frage:
Ich versuche einen Dialog dynamisch zu verändern. Der betreffende Textausschnitt lautet:
Das Programm erzeugt einfach einen Dialog mit einem Button und 2 Reihen. Diese sollen durch den Buttton bei jedem Klick um eine Reihe erweitert werden.
Im Prinzip läuft es auch alles super, nur wird irgendwie der Dialog nicht geupdatet und bleibt immer auf dem Stand der ersten erzeugung.(Reihen Counter zählt hoch aber View bleibt stehen). Ich habe auch schon die OnPrepare Methode versucht, oder einfach neues Dialog Objekt erzeugen, aber irgendwie scheint der Fehler wo anders zu stecken.
Weiß jemand was ich tun könnte, oder habe ich einen komplett falschen Ansatz?
PS: Gibt es einen Weg die Java Texte schöner hier im Forum einzubetten?
Zu meiner Frage:
Ich versuche einen Dialog dynamisch zu verändern. Der betreffende Textausschnitt lautet:
Code:
public class MainActivity extends Activity {
final protected int DIALOG = 0;
private int trAnzahl=2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ScrollView sv = new ScrollView(this);
TableLayout tl = new TableLayout(this);
tl.setOrientation(LinearLayout.VERTICAL);
Button bt = new Button(this);
bt.setId(0);
bt.setText("Dialog aufrufen");
bt.setOnClickListener(listener);
tl.addView(bt);
sv.addView(tl);
this.setContentView(sv);
}
private OnClickListener listener = new OnClickListener(){
public void onClick(View v){
switch(v.getId()){
case DIALOG : Toast toast = Toast.makeText(v.getContext(), "Button gedrückt",Toast.LENGTH_SHORT);toast.show();
showDialog(DIALOG);break;
}
}
};
protected Dialog onCreateDialog(int id) {
Dialog ergebnis = null;
switch(id) {
case DIALOG: ergebnis= erzeugeDialog();break;
}
return ergebnis;
}
private Dialog erzeugeDialog(){
Dialog dialog = new Dialog(this);
ScrollView sv = new ScrollView(this);
sv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
dialog.setContentView(sv);
TableLayout tl = new TableLayout(this);
tl.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
Button bt = new Button(this);
bt.setText("Hinzufügen");
tl.addView(bt);
bt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast toast = Toast.makeText(v.getContext(),""+trAnzahl,Toast.LENGTH_SHORT); toast.show();
trAnzahl++;
}
});
for(int i = 1; i <= trAnzahl; i++){
TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
TextView tv = new TextView(this);
tv.setText("Nummer"+i);
tr.addView(tv);
tl.addView(tr);
}
sv.addView(tl);
return dialog;
}
}
Im Prinzip läuft es auch alles super, nur wird irgendwie der Dialog nicht geupdatet und bleibt immer auf dem Stand der ersten erzeugung.(Reihen Counter zählt hoch aber View bleibt stehen). Ich habe auch schon die OnPrepare Methode versucht, oder einfach neues Dialog Objekt erzeugen, aber irgendwie scheint der Fehler wo anders zu stecken.
Weiß jemand was ich tun könnte, oder habe ich einen komplett falschen Ansatz?
PS: Gibt es einen Weg die Java Texte schöner hier im Forum einzubetten?
Zuletzt bearbeitet: