Ik ben bezig met het maken van een app voor Android. Het is me eerste app die ik steeds verder probeer uit te breiden. Wat de app moet doen een X aantal counters op 1 scherm weergeven. Wat ik nu heb is een werkend layout in XML, maar omdat ik graag een variabel aantal counters wil hebben, wil ik me layout opbouwen d.m.v Java i.p.v. XML. Hoe de layout er uit moet zijn:
Ik hoop dat ik alle irrilevante code heb weggehaalt en alle relevante code heb laten staan. Voor de volledigheid hier een link naar de XML-layout http://codeviewer.org/view/code:27d4 en hier de link naar het volledige Java bestand.http://codeviewer.org/view/code:27d5
Ik heb met de Hierarchy Viewer gekeken, maar dan zie je ook niets, wel de hele "boom" van alle elementen. De "boom" ziet er hetzelfde uit als ik die ene regel code niet gebruik. Als ik het een beetje verander zodat de helft van de buttons buiten het scherm vallen, dan is dat met the Hierarchy Viewer te zien, maar met die ene regel code is helemaal geen enkele button te zien.
Nou ik hoop dat dit een goede topic start is en als er documentatie over dit onderwerp gaat waar misschien de oorzaak van dit probleem in te vinden is dan hoor ik het graag. Alvast wil ik jullie bedanken voor de reacties.
- TableLayout
- TableRow
- LinearLayout
- Button
- TextView
- Button
- LinearLayout
- Button
- TextView
- Button
- LinearLayout
- TableRow
- LinearLayout
- Button
- TextView
- Button
- LinearLayout
- Button
- TextView
- Button
- LinearLayout
- TableRow
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
| // package en imports // de MenuButton class extends Activity public class StartPoint extends MenuButton { public static final String filename = "settingsFile"; SharedPreferences dataSettings; int[] number = new int[4]; Button[] add = new Button[4]; Button[] sub = new Button[4]; LinearLayout[] linearL = new LinearLayout[4]; TextView[] display = new TextView[4]; TableLayout mainTableLayout; TableRow[] tableRow = new TableRow[2]; boolean saving; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mainTableLayout = (TableLayout) findViewById(R.id.mainTableLayout); tableRow[0] = new TableRow(this); tableRow[1] = new TableRow(this); tableRow[0].setWeightSum(100); tableRow[1].setWeightSum(100); tableRow[0].setLayoutParams(new TableRow.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); tableRow[1].setLayoutParams(new TableRow.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); mainTableLayout.addView(tableRow[0]); mainTableLayout.addView(tableRow[1]); for(int j=0; j<=3; j++){ // convert j to a final integer final int i = new Integer(j); linearL[i] = new LinearLayout(this); add[i] = new Button(this); sub[i] = new Button(this); display[i] = new TextView(this); add[i].setText("+"); sub[i].setText("-"); display[i].setTextSize(TypedValue.COMPLEX_UNIT_DIP,45); sub[i].setTextSize(TypedValue.COMPLEX_UNIT_DIP,35); add[i].setTextSize(TypedValue.COMPLEX_UNIT_DIP,35); linearL[i].setOrientation(LinearLayout.VERTICAL); display[i].setGravity(Gravity.CENTER); add[i].setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); sub[i].setLayoutParams(new ViewGroup.LayoutParams(200,LayoutParams.MATCH_PARENT)); linearL[i].setLayoutParams(new LinearLayout.LayoutParams(0,0,50)); // als ik deze weghaal dan doet hij het, maar dan werkt de weightsum //linearL[i].setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT,50)); had ik eerst, maar dat geeft hetzelfde effect linearL[i].addView(add[i]); linearL[i].addView(display[i]); linearL[i].addView(sub[i]); tableRow[i%2].addView(linearL[i]); } } } |
Ik hoop dat ik alle irrilevante code heb weggehaalt en alle relevante code heb laten staan. Voor de volledigheid hier een link naar de XML-layout http://codeviewer.org/view/code:27d4 en hier de link naar het volledige Java bestand.http://codeviewer.org/view/code:27d5
Ik heb met de Hierarchy Viewer gekeken, maar dan zie je ook niets, wel de hele "boom" van alle elementen. De "boom" ziet er hetzelfde uit als ik die ene regel code niet gebruik. Als ik het een beetje verander zodat de helft van de buttons buiten het scherm vallen, dan is dat met the Hierarchy Viewer te zien, maar met die ene regel code is helemaal geen enkele button te zien.
Nou ik hoop dat dit een goede topic start is en als er documentatie over dit onderwerp gaat waar misschien de oorzaak van dit probleem in te vinden is dan hoor ik het graag. Alvast wil ik jullie bedanken voor de reacties.