Gelöschter Account
- Forum-Beiträge: 51
29.07.2010, 02:20:47 via Website
29.07.2010 02:20:47 via Website
Es geht um folgenden Code:
Soll folgendes machen. Ich muss für meinen Stundenplan die Row's dynamisch generieren. Ist das Handy im Portrait modus dann ist es die Ansicht des heutigen Tages, ist es im Landscape soll die ganze woche dargestellt werden. Startet man nun das Programm im Portrait funktioniert alles, es werden 10 rows generiert.
Wechselt man dann auf Landscape passiert auch das richtige, nämlich das keine Rows generiert werden, Wechselt man dann jedoch wieder zurück auf Portrait dann stürzt das Programm ab.
Der Fehler tritt bei der Zeile:
tl.addView(tr)
auf. Laut eclipse debugger wird dort eine NullPointerException geworfen. Kann mir wer weiterhelfen, wie ich es zum laufen kriege?
1public class Timetable extends Activity {
2
3 private DatabaseHelper db = new DatabaseHelper(this);
4 /** Called when the activity is first created. */
5 @Override
6 public void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.main);
9 db.getReadableDatabase();
10
11
12 SharedPreferences settings = getSharedPreferences("settings", 0);
13 Integer hours = settings.getInt("stunden", 10);
14 // Get display for detecting the phone orientation
15 Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
16//
17// // Get the orientation
18 int orientation = display.getRotation();
19
20 if (orientation == 0 || orientation == 2) {
21 for (Integer i = 1 ; i <= hours ; i++) {
22 TableLayout tl = (TableLayout)findViewById(R.id.timetable);
23 TableRow tr = new TableRow(this);
24 tr.setLayoutParams(new LayoutParams(
25 LayoutParams.FILL_PARENT,
26 LayoutParams.WRAP_CONTENT));
27
28 TextView zahl = new TextView(this);
29 zahl.setText(i.toString());
30 zahl.setLayoutParams(new TableRow.LayoutParams(
31 LayoutParams.FILL_PARENT,
32 LayoutParams.WRAP_CONTENT));
33
34 tr.addView(zahl);
35
36 TextView zahl2 = new TextView(this);
37 zahl2.setText("1");
38 zahl2.setLayoutParams(new TableRow.LayoutParams(
39 LayoutParams.FILL_PARENT,
40 LayoutParams.WRAP_CONTENT));
41
42 tr.addView(zahl2);
43
44 tl.addView(tr);
45
46 }
47 } else {
48 //TODO: add dynamic row implementation for landscape
49
50 }
51//
52
53 }
2
3 private DatabaseHelper db = new DatabaseHelper(this);
4 /** Called when the activity is first created. */
5 @Override
6 public void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.main);
9 db.getReadableDatabase();
10
11
12 SharedPreferences settings = getSharedPreferences("settings", 0);
13 Integer hours = settings.getInt("stunden", 10);
14 // Get display for detecting the phone orientation
15 Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
16//
17// // Get the orientation
18 int orientation = display.getRotation();
19
20 if (orientation == 0 || orientation == 2) {
21 for (Integer i = 1 ; i <= hours ; i++) {
22 TableLayout tl = (TableLayout)findViewById(R.id.timetable);
23 TableRow tr = new TableRow(this);
24 tr.setLayoutParams(new LayoutParams(
25 LayoutParams.FILL_PARENT,
26 LayoutParams.WRAP_CONTENT));
27
28 TextView zahl = new TextView(this);
29 zahl.setText(i.toString());
30 zahl.setLayoutParams(new TableRow.LayoutParams(
31 LayoutParams.FILL_PARENT,
32 LayoutParams.WRAP_CONTENT));
33
34 tr.addView(zahl);
35
36 TextView zahl2 = new TextView(this);
37 zahl2.setText("1");
38 zahl2.setLayoutParams(new TableRow.LayoutParams(
39 LayoutParams.FILL_PARENT,
40 LayoutParams.WRAP_CONTENT));
41
42 tr.addView(zahl2);
43
44 tl.addView(tr);
45
46 }
47 } else {
48 //TODO: add dynamic row implementation for landscape
49
50 }
51//
52
53 }
Soll folgendes machen. Ich muss für meinen Stundenplan die Row's dynamisch generieren. Ist das Handy im Portrait modus dann ist es die Ansicht des heutigen Tages, ist es im Landscape soll die ganze woche dargestellt werden. Startet man nun das Programm im Portrait funktioniert alles, es werden 10 rows generiert.
Wechselt man dann auf Landscape passiert auch das richtige, nämlich das keine Rows generiert werden, Wechselt man dann jedoch wieder zurück auf Portrait dann stürzt das Programm ab.
Der Fehler tritt bei der Zeile:
tl.addView(tr)
auf. Laut eclipse debugger wird dort eine NullPointerException geworfen. Kann mir wer weiterhelfen, wie ich es zum laufen kriege?
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.