Does findViewById() aufrufen und aufblasen() geben einen Blick Objekt oder „-Ansicht Referenz" ?
Es wird ein Objekt View
(oder Unterklasse) zurückgegeben.
Wenn die Rückgabesicht aufblasen Objekt, und die Ansicht ist übergeordnet von LinearLayout das Wie kann das Objekt view enthält lineareLayouts Mitglieder Variablen und Methoden.
Wenn Sie eine Ansicht aufblasen, all der Ansichten im Layout wird aufgeblasen werden, aber das zurückgegebene Objekt wird die Top-Level-Ansicht in Ihrem Layout sein. Viele Ansichten (alles, was von ViewGroup
stammt) können "untergeordnete" Ansichten haben. Sie können auf die untergeordneten Elemente der zurückgegebenen Ansicht zugreifen, indem Sie findViewById()
aufrufen oder indem Sie direkt auf sie mit getChildAt()
zugreifen.
Lassen Sie uns sagen, wir haben dieses Layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello world"/>
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Stack Overflow"/>
</LinearLayout>
Wir Code wie folgt schreiben:
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.my_layout, null);
In diesem Fall wird view
die LinearLayout
sein, die die Top-Level-Ansicht in unserem Layout ist . Wenn wir das Kind TextView
s bekommen möchten, könnten wir folgendes schreiben:
TextView helloWorld = view.findViewById(R.id.text1);
TextView stackOverflow = ((LinearLayout) view).getChildAt(1); // index is 0-based
sieht aus wie Sie Java Grundlagen verpasst haben. –