Ich fange einfach an Android zu lernen. Ich weiß Android ist das Open-Source-Betriebssystem. Ich benutze Android Studio für die Entwicklung der Software. Ich kenne die Funktion findViewById. Ich möchte die Implementierung dieser Funktion kennen. Ich sehe nur unten. Könnten Sie mir bitte helfen zu zeigen, wo ich die Implementierung dieser Funktion in Android Studio sehen kann? @Nullable public abstract Ansicht findViewById (@IdRes int id); Vielen Dank.Was ist die Implementierung der Funktion findViewById in Android
-3
A
Antwort
0
Meine Vermutung ist, dass jede Ansicht eine ID hat, also gehst du einfach alle durch, bis sie eine Übereinstimmung findet.
Allerdings habe ich nur in der Lage gewesen, dies zu verfolgen:
2071 public View findViewById(int id) {
2072 return getWindow().findViewById(id);
2073 }
989 public View findViewById(int id) {
990 return getDecorView().findViewById(id);
991 }
17067 public final View findViewById(int id) {
17068 if (id < 0) {
17069 return null;
17070 }
17071 return findViewTraversal(id);
17072 }
17028 protected View findViewTraversal(int id) {
17029 if (id == mID) {
17030 return this;
17031 }
17032 return null;
17033 }
Sieht aus wie jede Ansicht eine ID hat (mID), aber die Verfolgung mich nicht führen zu einer Looping. Vielleicht habe ich etwas verpasst, dieser Computer brauchte 10 Minuten, um durch die Seiten zu gehen, also werde ich wieder nach Hause schauen. Vielleicht kann jemand das für uns klären.
[da sind Sie] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android/view/View.java#View. findViewById% 28int% 29) – Blackbelt
@Blackbelt nicht vergessen, dass diese Implementierung Viewgroup überschreibt http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android /view/ViewGroup.java#1629 – Budius
Hinweis für die Zukunft: Halten Sie STRG gedrückt und klicken Sie auf die Methode, die Sie weiter untersuchen möchten. Gleiches gilt für Variablen, Klassen usw. – Vucko