¿Qué significa 'this' y 'setContentView' aquí?

Estaba tratando de desplegar una pequeña aplicación para Android, donde, estaba tratando de mostrar "Hello World" para el usuario.

Las líneas de código que he aplicado aquí fueron (un poco de los recursos de Internet):

TextView text = new TextView(this); text.setText("Hello World, Here"); setContentView(text); 

Lo que no entiendo es: ¿Por qué es necesaria this palabra clave aquí? ¿No puedo crear un simple objeto TextView vainilla para establecer el texto como este:

  TextView text = new TextView(); text.setText("Hello World, Here"); 

Y, ¿cuál es el propósito del método setContentView aquí? ¿ System.out.println como System.out.println de java? Un poco confundido, cualquier ayuda será apreciada. Gracias .

  TextView text = new TextView(this); 

Esto se refiere al contexto actual en su caso contexto de actividad ya que desea ver el texto en su actividad.

Public void setContentView (vista de vista)

Establezca el contenido de la actividad en una vista explícita. Esta vista se coloca directamente en la jerarquía de la vista de la actividad. Puede ser una jerarquía de vista compleja. Al llamar a este método, los parámetros de diseño de la vista especificada se ignoran. Tanto el ancho como la altura de la vista se establecen de forma predeterminada en MATCH_PARENT. Para usar sus propios parámetros de diseño, invoque setContentView (android.view.View, android.view.ViewGroup.LayoutParams) en su lugar.

Parámetros

Ver El contenido deseado para mostrar.

http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)

En su caso, setContentView (texto) está configurando la vista ie textview a la actividad ie screen.

System.out.println ("hola") en android imprimirá hola en logcat.

¿Qué se entiende por "este" contexto?

  TextView text = new TextView(this); 

¿Por qué es necesaria esta palabra clave aquí?

Esto se refiere al objeto actual que en su caso es la Actividad, ya que probablemente esté ejecutando este código desde la clase onCreate de su clase de actividad. Y el constructor de la clase TextView requiere al menos un contexto como argumento. Y la actividad es una subclase al contexto así que pasar "esto" hace el truco. Es por eso que no puedes hacer algo como esto.

  TextView text = new TextView(); 

Ahora para responder por qué estamos haciendo esto. Piénsalo de esta manera. Esta es una visión que necesita conectarse con algún contexto. De modo que también puede consumir muchos privilegios relacionados con el contexto en el sistema.

Vea el contexto como un componente envuelto individualmente existente de su aplicación que será vinculante tantas cosas en él y tiene un ciclo de vida bien definido.

La actividad es un tipo de contexto. La actividad es una pantalla visible en la aplicación android. En realidad la actividad es mucho más que eso. Pero sólo para entender esto en el nivel elemental.

SetContentView lo dice todo. El contenido que la actividad va a mostrar en la pantalla visible a la que pertenece.

Así que usted declaró un TextView y lo establece como el contenido de la actividad que se obtendrá. Sencillo.

Espero que ayude a entender mejor. Usted debe seguir mejor http://developer.android.com

aclamaciones

Esto se refiere al contexto. SetContentview se utiliza para establecer el recurso de diseño que toma un entero como el argumento y el entero se refiere a la disposición xml

De la documentación

Los elementos de vista requieren que Context pase al constructor para que tenga acceso a recursos como tema y cosas. Actividad es un niño de Contexto para que pueda usar esto aquí.

SetContentView establece un elemento de vista que se utilizará para mostrar la actividad, puede pasar una instancia del elemento View o ID del recurso.

Si no existiera (método setContentView ()), no sabría nunca qué archivo / código se ejecutará cuando se inicie la actividad.

Está estableciendo el contexto con el método setContentView() .

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