studio programacion libro herramientas fundamentos con avanzado aplicaciones android android-fragments android-spinner findviewbyid

programacion - manual de android en pdf



findViewById devuelve nulo en fragmento (2)

Tengo un problema al usar el método findViewByID en un fragmento.

El spinner en Spinner spinner = (Spinner) view.findViewById(R.id.tabsearchspinner_location); siempre es nulo Por favor, mira el código a continuación.

public class FragmentTabSearch extends SherlockFragment implements OnItemSelectedListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragment_tab_suggestions, container, false); Spinner spinner = (Spinner) view.findViewById(R.id.tabsearchspinner_location); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this.getSherlockActivity(), R.array.spinner_location, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); return view; } @Override public void onItemSelected(IcsAdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub } @Override public void onNothingSelected(IcsAdapterView<?> parent) { // TODO Auto-generated method stub }

}

El archivo de diseño es el siguiente (ps: ya he declarado el id / tabsearchspinner_location en el archivo values ​​/ ids.xml): <item type="id" name="tabsearchspinner_location"></item>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Spinner android:id="@id/tabsearchspinner_location" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ListView android:id="@id/tablistview_search" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView>

¡Cualquier ayuda es apreciada!


Infle su View sin un ViewGroup , ya que es simplemente dentro de su FragmentActivity:

View view = inflater.inflate(R.layout.fragment_tab_suggestions, null);

Y la forma en que se agregan los ID dentro de los archivos de diseño XML es así:

android:id="@+id/tabsearchspinner_location"

Como puedes ver, te estás perdiendo el +


Lo siento, me acabo de findViewById que he inflado el diseño incorrecto, por lo que el método findViewById siempre devuelve nulo, gracias por toda la ayuda.