Problemas con el findViewById de Android
Estoy usando algún código genérico pre-generado y no está funcionando.
Aquí está la función onCreateView para un Fragmento:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_tabmain, container, false); TextView textView = (TextView) rootView.findViewById(R.id.section_label); textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); return rootView; }
Aquí está el xml para este fragmento:
<RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.startandselect.agora.tabmain$PlaceholderFragment"> <TextView android:id="@+id/section_label" android:layout_width="wrap_content" android:layout_height="wrap_content" />
Pero cuando corro el problema consigo un error en la línea textView
porque textView
es null. textView
es nulo porque la línea anterior no encontró la vista de texto. El findViewById
no pudo encontrarlo, pero no sé por qué.
Debugged y encontré que el textView verdadero tiene un id: 2131492994 y el R.id.section_label tiene un id de 2131492997.
Intente utilizar lo siguiente:
TextView textView = (TextView) findViewById(R.id.section_label);
en lugar de:
TextView textView = (TextView) rootView.findViewById(R.id.section_label);
Tienes el mismo android: id de TextView en otro diseño de actividad.
Karakuri sugirió en el comentario para limpiar y reconstruir. Fue lo primero que intenté y eso fue todo lo que tomó, gracias.
Solución: Limpie y reconstruya el proyecto.