sirve que para method example cannot android null inflate findviewbyid

android - que - findviewbyid r id



¿Por qué findViewById() devuelve null si no se llama a setcontentview()? (1)

public void setContentView (View view)

Establezca el contenido de la actividad en una vista explícita. Esta vista se coloca directamente en la jerarquía de vista de la actividad.

setContentView (View view) es un método de clase de actividad. Cuando se crea una actividad, debe configurar el contenido para su actividad.

onCreate (Bundle) es donde inicializas tu actividad. Lo más importante es que aquí generalmente se llama a setContentView (vista) con un recurso de diseño que define su UI, y utilizando findViewById (int) para recuperar los widgets en esa UI con la que necesita interactuar mediante programación.

Su implementación de onCreate () debería definir la interfaz de usuario y posiblemente crear una instancia de algunas variables de ámbito de clases.

Todos los recursos, como la vista de texto, dibujables cuando se agregan en los archivos de diseño tendrán una entrada en los archivos R.java La entrada es automática

Ejemplo

Para activity_main en R.java

public static final class layout { public static final int activity_main=0x7f030000; }

En su caso, puede inflar el diseño pero no configurar el contenido para la actividad.

Debe configurar el contenido para su actividad y luego buscar los identificadores usando findViewById (..).

Si no, obtendrás NullPointerException.

Soy nuevo-bee para Android.

Aquí está mi archivo xml -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:id="@+id/linearlayout" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:id="@+id/textview" /> </LinearLayout>

y código muy básico -

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view=getLayoutInflater().inflate(R.layout.activity_main,null); //setContentView(view); LinearLayout ly = (LinearLayout)findViewById(R.id.linearlayout); Log.i("System.out ","linear layout = " + view); Log.i("System.out ","linear layout = " + ly); }

Salida:

05-10 11:44:15.996: I/System.out(6494): linear layout = android.widget.LinearLayout@41e34db8 05-10 11:44:15.996: I/System.out(6494): linear layout = null

findViewById() está devolviendo nulo? ¿Por qué?

Si setContentView(view) comentario de setContentView(view) y vuelvo a ejecutar ...

Salida:

05-10 11:50:12.781: I/System.out(7791): linear layout = android.widget.LinearLayout@41e0d6c8 05-10 11:50:12.781: I/System.out(7791): linear layout = android.widget.LinearLayout@41e0d6c8

¿Qué más hace setContentView() ?