1029 Stimmen

Was bedeutet "tools:context" in Android-Layoutdateien?

Seit einer neuen Version von ADT habe ich zum Beispiel dieses neue Attribut in den Layout-XML-Dateien entdeckt:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

Wofür wird "tools:context" verwendet?

Woher weiß es überhaupt den genauen Pfad zu der Aktivität, die dort geschrieben steht? Sieht es sich das Paket der App im Manifest an?

Ist sie auf Klassen beschränkt, die den Kontext erweitern, oder nur auf Aktivitäten? Ist sie für ListView-Elemente usw. verwendbar?

3voto

Ashik Azeez Punkte 386

Das ist die beste Lösung: https://developer.Android.com/studio/write/tool-attributes

Dies sind Gestaltungsmerkmale Wir können den Aktivitätskontext in Xml wie folgt festlegen

tools:context=".activity.ActivityName"

Adapter:

tools:context="com.PackegaName.AdapterName"

enter image description here

Sie können zur Java-Klasse navigieren, indem Sie auf das markierte Symbol klicken und Tools haben weitere Funktionen wie

tools:text=""
tools:visibility:""
tools:listItems=""//for recycler view 

etx

0voto

tools:context=".MainActivity" Diese Zeile wird in der Xml-Datei verwendet, um anzuzeigen, welche Java-Quelldatei für den Zugriff auf diese Xml-Datei verwendet wird. Es bedeutet, dass diese Xml-Vorschau für bestimmte Java-Dateien angezeigt wird.

0voto

CleanCoder Punkte 262
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    //more views

</androidx.constraintlayout.widget.ConstraintLayout>

Im obigen Code besteht die grundlegende Notwendigkeit von tools:context darin, mitzuteilen, welcher Aktivität oder welchem Fragment die Layoutdatei standardmäßig zugeordnet ist. Sie können also den Namen der Aktivitätsklasse mit demselben Punkt-Präfix wie in der Manifestdatei angeben.

Auf diese Weise wählt Android Studio automatisch das erforderliche Thema für die Vorschau aus und Sie müssen die Vorschaueinstellungen nicht manuell vornehmen. Wie wir alle wissen, kann eine Layout-Datei mit mehreren Aktivitäten verbunden sein, aber die Themes werden in der Manifest-Datei definiert und diese Themes sind mit Ihrer Aktivität verbunden. Durch das Hinzufügen von tools:context in Ihrer Layout-Datei wählt die Android Studio-Vorschau automatisch das erforderliche Thema für Sie aus.

0voto

Akanshi Srivastava Punkte 1060

Dieses Attribut hilft Ihnen, die mit Ihrem Layout verbundenen Aktivitäten besser zu verstehen. Dies ist auch nützlich, wenn Sie mit QuickFix onClick-Handler in einer Ansicht hinzufügen müssen.

tools:context=".MainActivity"

0voto

amir Punkte 183

Nach Angaben der entwickler.android.de

Bestimmt für: Jede Wurzel <View>

Verwendet von: Lint, Android Studio Layout-Editor

Dieses Attribut gibt an, mit welcher Aktivität dieses Layout standardmäßig verknüpft ist. Dies ermöglicht Funktionen im Editor oder in der Layoutvorschau, die die Kenntnis der Aktivität erfordern, z. B. welches Layoutthema in der Vorschau angezeigt werden soll und wo onClick-Handler eingefügt werden sollen, wenn Sie diese aus einem Quickfix erstellen (Abbildung 2).

enter image description here

Abbildung 2. Quickfix für das onClick-Attribut funktioniert nur, wenn Sie tools:context gesetzt haben

Sie können den Namen der Aktivitätsklasse mit demselben Punktpräfix wie in der Manifestdatei angeben (ohne den vollständigen Paketnamen). Zum Beispiel:

<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X