¿Alguna ayuda de Java con la fuente de Android por favor?

Para aquí la fuente de Android de Activity.java .

En particular, el método setContentView() en la línea 1646:

 public void setContentView(int layoutResID) { getWindow().setContentView(layoutResID); } 

Me gustaría saber lo que es exactamente llamar / hacer.

Aquí está mi rastro …

En la línea 642, sabemos que es del tipo android.view.Window

 private Window mWindow; 

Pero Window.java es una clase abstracta. Y en la línea 738, el método también es abstracto:

 public abstract void setContentView(int layoutResID); 

¿Dónde se implementa el cuerpo funcional real?

Volver al archivo Activity.java , en la línea 3746, encontramos algunas inicializaciones de mWindow :

 mWindow = PolicyManager.makeNewWindow(this); mWindow.setCallback(this); ... 

Bueno, acerca de makeNewWindow() com.android.internal.policy.PolicyManager :

 public static Window makeNewWindow(Context context) { return sPolicy.makeNewWindow(context); } 

y

 private static final IPolicy sPolicy; Class policyClass = Class.forName(POLICY_IMPL_CLASS_NAME); sPolicy = (IPolicy)policyClass.newInstance(); 

IPolicy.java es una interfaz, lo que significa que no hay implementación en absoluto.

Mi rastro no puede ir más lejos. ¿Podrías ayudarme por favor?

En particular, sé que Activity.setContentView() eventualmente llamará Fragment.onInflate() android.support.v4.app.Fragment.java Fragment.onInflate() – línea 920, Fragment.onAttach() – línea 928, Fragment.onCreate() Línea 953, Fragment.onCreateView() – línea 967 y Fragment.onViewCreated() – línea 991.

    One Solution collect form web for “¿Alguna ayuda de Java con la fuente de Android por favor?”

    ¿Dónde se implementa el cuerpo funcional real?

     private Window mWindow; 

    El mWindow se inicializa mediante:

     mWindow = PolicyManager.makeNewWindow(this); 

    En el método attach (). Busque el método PolicyManager.makeNewWindow en PolicyManager.java.

     Class policyClass = Class.forName(POLICY_IMPL_CLASS_NAME); sPolicy = (IPolicy)policyClass.newInstance(); public static Window makeNewWindow(Context context) { return sPolicy.makeNewWindow(context); } 

    Y el POLICY_IMPL_CLASS_NAME es com.android.internal.policy.impl.Policy . Así que mira el Policy.java. Aquí está:

     public Window makeNewWindow(Context context) { return new PhoneWindow(context); } 

    Y el setContentView se implementa en el PhoneWindow.java

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.