Dynamisches befüllen von Layouts

  • Antworten:10
Jonas G.
  • Forum-Beiträge: 152

04.03.2013, 09:04:47 via Website

Hallo,

Ich will eine liste mit Einträgen befüllen.
mein momentaner Code ist:
1ll = new LinearLayout(this);
2ll.setOrientation(LinearLayout.VERTICAL);
3sv = (ScrollView) findViewById(R.id.scrollLayout);
4sv.addView(ll);
5LinearLayout llv;
6TextView hText;
7TextView nText;;
8for (int i = 0; i < resultList.length; i++) {
9 llv = new LinearLayout(this);
10 llv.setOrientation(LinearLayout.VERTICAL);
11 hText = new TextView(this);
12 hText.setText("Hallo Welt");
13 hText.setTextSize(20);
14 llv.addView(hText);
15 nText = new TextView(this);
16 nText.setText("Hallo Welt");
17 llv.addView(nText);
18 llh.addView(llv);
19 ll.addView(llv);
20}
in der dazugehörigen XML gibt es nur diese Element:
1<ScrollView
2 android:id="@+id/scrollLayout"
3 android:layout_width="fill_parent"
4 android:layout_height="wrap_content"
5 android:layout_alignParentBottom="true"
6 android:layout_alignParentLeft="true"
7 android:layout_alignParentRight="true" >
8
9 </ScrollView>
Wen ich nun die App öffne wird mir eine leere Fläche angezeigt.
nachdem ich "Layout-grenzen anzeigen" werden mir 2 (ich habe momentan 2 Einträge in "resultList") kleine streifen angezeigt, (ca. 1-2 mm auseinander).

Falls ihr mir weiterhelfen könnt würde ich mich über schnelle Antwort freuen.

LG, Jonas

Antworten
Kai P.
  • Forum-Beiträge: 113

04.03.2013, 09:06:58 via Website

Hallo Jonas,

was willst Du denn genau machen?

Gruss
Kai

Antworten
Jonas G.
  • Forum-Beiträge: 152

04.03.2013, 09:12:15 via Website

ich habe ein paar Einträge in einer Datenbank, diese möchte ich in einer liste anzeigen, den String "Hallo Welt" werde ich durch den Wert von resultlist[i] ersetzen.

Lg, Jonas

Antworten
Timo D.
  • Forum-Beiträge: 182

04.03.2013, 09:15:46 via Website

Was liefert Resultlist.length?

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Antworten
Jonas G.
  • Forum-Beiträge: 152

04.03.2013, 09:18:59 via Website

2

im Debuggmode wird die schleife auch 2mal ausgeführt.

— geändert am 04.03.2013, 09:21:16

Antworten
Timo D.
  • Forum-Beiträge: 182

04.03.2013, 09:25:16 via Website

Es geht z.B. so:
1LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
2 layout.setOrientation(LinearLayout.VERTICAL);
3 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
4 LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
5 LinearLayout row = new LinearLayout(YourActivity.this);
6 row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
7 TexView view= new TextView(YourActivity.this);
8 view.setPadding(30,10,0,0);
9 view.setText(message);
10
11 row.addView(view,layoutParams);
12 layout.addView(row, layoutParams);
13 }
Das Scrollen kannst du dann auch über die XML Datei festlegen.

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

04.03.2013, 11:20:59 via Website

Was spricht dagegen, dieses Problem mit einem ListView zu lösen?

Gegen die aktuelle Lösung spricht (neben dem Mehraufwand beim Erstellen), das du bei einem 2000er Resultset dann auch 2000 Views in deinem Layout hast, was Android möglicherweise nicht mehr so lustig finden wird.

Antworten
Jonas G.
  • Forum-Beiträge: 152

04.03.2013, 11:25:21 via Website

Weil ich eine Kombination von großem/kleinen Text und Bildern anzeigen will, und ich es sehr stark bezweifle das ein User überhaupt bis zu 100 Einträgen kommt.

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

04.03.2013, 13:12:14 via Website

Weil ich eine Kombination von großem/kleinen Text und Bildern anzeigen will
...und du meinst, mit einer ListView geht das nicht?

Antworten
Jonas G.
  • Forum-Beiträge: 152

04.03.2013, 14:11:19 via Website

kennst du zufällig auch ein gutes tutorial?

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

04.03.2013, 18:46:13 via Website

Was genau ist dir denn unklar?
Du layoutest die rows genau so wie du die Activity layouten würdest, mit Texten, Bildern, Knöpfen etc., und übergibst dieses Layout dann an den Adapter, den du für die Darstellung verwenden möchtest.

Antworten