¿Por qué findViewById (…) devuelve null?
findViewById está devolviendo null para mí en un widget ImageView. No hay error y nada en logcat que indica lo que está pasando. La coincidencia del id y otras vistas de imagen se están configurando correctamente. Java y xml están enlazados por la etiqueta de clase en xml que apunta a la clase definida en java que es un descendiente de RelativeLayout.
Intenté cambiar el nombre de R.id.more_icon1 y eso no funcionó. Probamos la limpieza y que no funcionaba. Usado depurador para ver que realmente se mueve en pasado y cuando devuelve mMoreIcon == null.
- Android: el salto de Listview a scrollview
- Android Studio: EditText editable es obsoleto Cómo utilizar inputType
- Listview en el lado de rleft y tabhost en el lado derecho con la proporción de 20:80 compartir pantalla
- Android: errorMessageBackground no obtener ningún recurso encontrado error en styles.xml
- Widget con el proveedor de contenido; Imposible de usar ReadPermission?
Lo que es extraño es que el trabajo de otro ImageView está bien.
¿Alguien ha visto esto antes o tiene alguna idea?
Java Code: Class es un descendiente de RelativeLayout
@Override protected void onFinishInflate() { super.onFinishInflate(); mText1 = (TextView) findViewById(R.id.text1); mText2 = (TextView) findViewById(R.id.text2); mIcon1 = (ImageView) findViewById(R.id.icon1); mIcon2 = (ImageView) findViewById(R.id.icon2); // mMoreIcon is the one that gets set as null. mIcon1 and mIcon2 work just fine. mMoreIcon = (ImageView) findViewById(R.id.more_icon1); }
Código XML:
<ImageView android:id="@+id/icon1" style="@style/SuggestionIcon1" android:scaleType="centerInside" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" /> <!-- This is the icon that is being returned as null --> <ImageView android:id="@+id/more_icon1" style="@style/MoreIcon2" android:scaleType="centerInside" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:visibility="gone" /> <ImageView android:id="@+id/icon2" style="@style/SuggestionIcon2" android:scaleType="centerInside" android:layout_toLeftOf="@id/more_icon1" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:visibility="gone" />
Gracias
- Tamaño de Android Widget
- ¿Cómo poner publicidad en mi aplicación Android?
- Android: establece un borde alrededor de un ImageView
- ¿Cómo crear una vista personalizada en un Widget de aplicación similar al del widget de Google Play Música?
- Cómo mejorar el rendimiento de ViewFlipper / ViewAnimator
- Personalizar el diálogo que tiene elementos de una sola opción de la lista
- Cómo establecer las dos líneas de un ListView utilizando simple_list_item_2?
- ¿Es imposible agregar varias vistas a un ScrollView?
Tuve un problema similar y mi problema era que findviewbyid sólo encontrar las vistas de los niños. Si la vista es un hermano que tendría que llamar desde el padre. La actividad debe ser capaz de encontrarlo.
Recientemente tuve un problema similar al usar el android: visibility = "gone"
<RelativeLayout android:id="@+id/relativeLayoutMessage" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/linearLayoutMenu" android:layout_above="@+id/layoutButtons"> <ImageView android:id="@+id/imageView" android:layout_width="fill_parent" android:contentDescription="@string/image_attachment" android:src="@drawable/icon" android:scaleType="fitCenter" android:layout_height="fill_parent" android:layout_alignParentTop="true" /> <TextView android:id="@+id/textViewTitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="20dip" android:layout_alignParentTop="true"/> <TextView android:id="@+id/textViewText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone" android:gravity="center" android:layout_below="@+id/textViewTitle"/> </RelativeLayout>
Con el ImageView encima de TextViews, la aplicación se bloquearía en la línea siguiente.
Archivo Java:
setContentView(R.layout.display_image); imageView = (ImageView) findViewById(R.id.imageView);
Si moví el ImageView por debajo de TextViews, la aplicación se ejecutaría, pero las TextViews fueron cubiertas por ImageView.
Una vez que he eliminado el android: visibility = "ido", el findViewById resuelto correctamente. Todo lo que tenía que hacer era fijar la visibilidad en el código después.
textViewText.setVisibility(TextView.GONE);
Yo tuve este problema también. Este era mi código:
RelativeLayout ml = (RelativeLayout) findViewById(R.id.layout); public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_the_next);
Después de cambiarlo a esto funcionó:
RelativeLayout ml; public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_the_next); ml = (RelativeLayout) findViewById(R.id.layout);
Parece que si instanciar su diseño antes de setContentView () devuelve null.
- Cómo recortar la imagen en forma ovalada o forma facemask en android?
- Cómo manejar onCheckedChangeListener para un RadioGroup en un adaptador ListView personalizado