2012-04-14 6 views
1

Mein Code dynamisch die Bildschirmhöhe zu erhalten:Klasse werfen Ausnahme während Windowmanager in Android

Display display = ((Activity) getContext()).getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int width = size.x; 
    int height = size.y; 

Fehler: Fehler: java.lang.ClassCastException: android.app.Application komplette Protokoll Katze: http://pastebin.com/8zUNFUYn

Edit: Geänderte Code dazu:

Display display = (activity).getWindowManager().getDefaultDisplay(); 

     Point size = new Point(); 
     display.getSize(size); 
     int width = size.x; 
     int height = size.y; 

Arbeitete aber gab einen neuen er ror das ist display.getSize (Größe) ist keine Methode. Ist diese API gesunken?

+0

setzen Sie immer voll logcat hier .......... –

+0

Ihre Protokolle erzählen leider nichts über ** ClassCastException ** .... – waqaslam

+0

@Waqas http://pastebin.com/YwEq3BKj – Hick

Antwort

2

Context

ist Basisklasse für beide Anwendungs ​​und Aktivität. Da Ihr eine Anwendung mit getContext() bekommt, verursacht das Gießen ActivityClassCastExecption.

1

ersetzen Ihre Linie mit diesem:

, wenn Sie diesen Code in Aktivität dann diese verwenden verwenden:

Display display = this.getContext().getWindowManager().getDefaultDisplay(); 
+0

Ich habe folgendes verwendet: Display display = ((Aktivität) this.getContext()). GetWindowManager(). GetDefaultDisplay(); Und immer noch der gleiche Fehler. – Hick

+0

getContext() gibt die 'Activity' nicht zurück - Sie wären wahrscheinlich besser dran, wenn Sie Code hinzufügen würden, um zu zeigen, wie Ihr Adapter aufgebaut ist und wie Sie ihn in Ihrer' Activity' erstellen. Verwenden Sie '#getApplicationContext()', um den 'Kontext' zu erhalten, den Sie darin speichern? – Jens

+0

Bearbeitet. Überprüfen Sie die Frage. – Hick

Verwandte Themen