2016-09-21 5 views
-2

In meiner Klasse ListView erhalte ich die Fehlermeldung: "Das Symbol 'mBlockLayoutRequests' kann nicht aufgelöst werden". (Quellcode mit Fehlermeldung: link)Fehler "Das Symbol 'mBlockLayoutRequests' kann nicht aufgelöst werden"

mBlockLayoutRequests ist in meiner Klasse AdapterView (source code) erklärt, die von ListView vererbt wird:

boolean mBlockLayoutRequests = false; 

Wenn ich auf, erhalte ich die Meldung „Kann nicht finden Erklärung gehe zu". Gibt es einen Fehler in meinem Code? Was soll ich tun, um diesen Fehler zu beheben?

+0

Es gibt viele andere Fehler in Ihrem Code. Vielleicht sollten Sie angeben, wie beide Klassen deklariert sind (Paket, Modifikatoren, Klauseln) und die ersten paar Fehlermeldungen, kein willkürlicher Fehler im Code. –

Antwort

1

Das Feld mBlockLayoutRequest ist Paket-privat. Wenn sich beide Klassen in unterschiedlichen Paketen befinden, kann ListView nicht auf dieses Feld zugreifen. Es hat zumindest geschützt werden:

protected boolean mBlockLayoutRequest = false; 

Nach Sie Schuss-Bildschirm, der super Referenz auch einen Fehler aufweist. Stellen Sie natürlich sicher, dass ListView tatsächlich von AdapterView erbt (d. H. Weder privat noch endgültig ist).

+0

danke für meine Antwort. ListView und AdapterView ist im Paket android.widget und mBlockLayoutRequest kann von ListView.Class aufgerufen werden ListView kann nicht mBlockLayoutRequest zugreifen, wenn mBlockLayoutRequest ist privat, ist es richtig? –

+0

Ich habe meine Antwort aktualisiert. Paket-privates Feld * sind * zugänglich, wenn beide Klassen im selben Paket sind. Nur 'private' Felder sind niemals von außen zugänglich. –

+0

ja, du hast Recht! ListView erbt tatsächlich von AbsListView, das von AdapterView erbt. ListView und AdapterView befinden sich im gleichen Paket, dessen Name android.widget lautet. Sie können die Website für zwei Klassen verwenden, grepcode.com. Der Code ist gut! aber warum es Tipp: "Kann Symbol nicht auflösen ...", was sollte ich tun, um es zu beheben? –

Verwandte Themen