Auto-Import der benötigten Klassen, wie bei Eclipse Ctrl-Shift-O

Hallo zusammen

Das hier scheint nicht zu gehen, wenn ich "Import unambiguous … " sowie "Optimize imports … " ankreuze hat die Option „Optimize Imports“ nicht mehr und nicht weniger Funktionalität als vorher.

Habe ich hier gefunden: https://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android-studio

Ist Android Studio überhaupt zu sowas in der Lage? Wohl nicht, so wie’s aussieht…?

Vielen Dank für die Feedbacks! :slight_smile:

Gradle … ?

allgemeiner Link: https://developer.android.com/studio/build/dependencies

Man muss hier zwischen Dependencies und Imports unterscheiden.

Dependency ist eine Bibliothek (eine JAR, wenn Java), die sich beim Kompilieren oder Ausführen im „Classpath“ befinden muss. Allgemein muss die externe Bibliothek der Laufzeit bekannt sein.

Es gibt etliche Tools, wie gradle, ivy oder maven, dass genau diese Abhänigkeiten verwalten.

Importe: Das sind deklarationen in einem Java-Programm, die es erlauben „namespaces“ zu definieren. Klassen sind normalerweise in Pakete unterteilt, um eine gewisse Struktur in ein Programm zu bringen. Man kann also „MeineKlasse“ im Paket „de.marcinek.xyz.modul“ vorsehen. Dann müsste man diese mit de.marcinek.xyz.modul.MeineKlasse ansprechen. Damit das kürzer geht, kann mit einer import Anweisung sagen, dass man Klassen in dem jeweiligen Paket meint.

Bei dem TO geht es hier um letzteres.

Ich kenne Android-Studio nicht. Aber in dem von @jmar83 verlinkten Posting steht, dass man im Android-Studio automatisch importe organisieren kann beim Speichern.
Dafür in den EInstellungen einfach nach „import“ suchen. - Hilft das weiter?

Gruß,
Martin

Vielen Dank für die Antworten!

" … dass man im Android-Studio automatisch importe organisieren kann beim Speichern."

Ja, oder auch ohne zusätzliches Speichern. Wobei es in den meisten Fällen aber sicher Sinn ergibt! :wink:

Eben wie gesagt, das Gleiche was Eclipse bei „Organize Imports“ macht…

Werde mal schauen ob ich was entsprechendes in den Android-Studio-Einstellungen finde.

Andernfalls werde ich halt bei jeder Verwendung einer Klasse à la java.lang.ZuVerwendenteKlasse in der Java-Doku nachschauen müssen in welchem Package sich diese denn befindet und oben mit import java.lang.ZuVerwendendeKlasse; importieren. Relativ mühsam, funktioniert aber.

Sowas gibt es bei IntelliJ/AndroidStudio nicht, hab ich am Anfang aber auch vermisst.

Du schreibst einfach deine Klasse, z.B.
List list;
dann sollte er das rot markieren und in einem Tooltip anzeigen, dass du Alt+Enter drücken musst um den Import hinzu zu fügen.

Was auch geht, ist einfach nichts zu importieren und, in diesem Beispiel „list“, einfach zu verwenden indem du eine Methode schreibst.
list.a
dann sollte er dir „add()“ als Autokorrektur anbieten, was du bestätigst und dann importiert er die Klasse auch automatisch.

Vielen Dank!! :slight_smile:

wenn du bibliotheken importieren willst, dann musst das in deinem gradle.properties file (dependencies -> implementation) machen. Nach dem syncen sind neuen Klassen sofort und ohne zutun in AndroidStudio verfügbar.

Vielen Dank, hat inzwischen geklappt, es war halt einfach die falsch gradle.properties welche ich verwendet hat. Diese kann ja mehrfach vorkommen…

stimmt, das ist etwas kniffelig…

Mit „offensichtlich“-logischer Denkweise oder gar Intuition kommt man da nicht weit - man muss es einfach wissen. (Wie bei vielen anderen Sachen sonst auch)