Android - ListActivity, fügen Sie Kopf-und Fußzeilen-Ansicht

Ich bin mit ListActivity, listview.

listView = getListView();

einfach perfekt funktioniert. Ich fügte hinzu, Fußzeilen-Ansicht als

LayoutInflater inflater = getLayoutInflater();
listView.addFooterView( inflater.inflate( R.layout.footer, null ), null, false);

und alles war glänzend, aber hässlich, also wollte ich hinzufügen, dass das Fußzeilen-Ansicht (die enthält nur 1 edittext und nur 1 Taste), um die header der listView als

LayoutInflater inflater = getLayoutInflater();
listView.addHeaderView( inflater.inflate( R.layout.footer, null ), null, false);

- und plötzlich geht alles schief, und ich bekomme RuntimeException sofort.

Suspended(exception RuntimeException)
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent)
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent)
ActivityThread.access$2200(ActivityThread, Activity$ActiviyRecord, Intent),
so on..

Warum ist es wirft exception ? Was ist der Unterschied zwischen addFooterView und addHeaderView, und wie kann ich den Header hinzufügen, um ListActivity ?

UPDATE

So, wie Sie können, Lesen Sie in den Kommentaren, mein logcat funktioniert immer noch nicht, aber ich habe einfach versucht, weiter in diesem moment:

} catch(Exception e){ 
  Writer result = new StringWriter(); 
  PrintWriter printWriter = new PrintWriter(result);
  e.printStackTrace(printWriter);
  String error = result.toString(); 
}

darnach ich setzen, breakpoint, und ich kann Lesen-Fehler in Ausdrücken Abschnitt. er sagte :

java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. 

es war lehrreich für uns alle. Nach änderung der Art der Befehle, es funktioniert perferctly.

  • voll logcat hier...
  • logcat nicht funktioniert :S nie gearbeitet zu mir
  • nicht funktioniert :S nie gearbeitet zu mir" - Sie bedeuten, dass Sie nicht wissen, wie Sie auf die logcat-Daten? Starten Sie emulator, oder schließen Sie ein Telefon an den PC an und verwenden Sie DDMS in eclipse, und Sie werden sehen, jede app, die ausgeführt wird, ausgeben von Daten auf logcat.
  • ich meine, logcat nicht alles berichten
  • Dann fangen Sie die Ausnahme mit catch(Exception e) und in den catch-block verwenden e.printStackTrace()
  • aber nur Dinge, die ich geändert wurde, ist die Veränderung addFooterView zu addHeaderView. und addFooterView funktioniert everytimebut 'addHeaderView' nicht
  • ich habe. und leider ist es nicht wirklich zu berichten, was
  • Sie müssen lernen, wie man die tools verwenden. Sie sind absichtlich verhindert immer die debugging-Informationen, die Sie benötigen, durch die Aussetzung der Ausführung auf die Ausnahme. Tun Sie dies nicht. Ermöglichen die Anwendung zum Absturz, und Ihr stack-trace wird angezeigt, in LogCat.
  • Nicht mir die Schuld bitte. LogCat funktioniert immer noch nicht. Ich finde einen Weg, um Fehler Auslesen, ich aktualisiert die Frage. Danke !

InformationsquelleAutor Victor | 2012-04-15
Schreibe einen Kommentar