El fragmento no se puede convertir en Contexto

Esta es mi primera vez usando fragmentos (nuevo para Android) y estoy tratando de configurar un spinner. En este momento estoy bastante confundido acerca del contexto y no puedo resolver este error:

Error:(52, 78) error: incompatible types: HotkeysFragment cannot be converted to Context 

Aquí está el código que se refiere a:

HotkeysFragment.java

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } Spinner hotkey_selector_spinner = (Spinner) rootView.findViewById(R.id.hotkey_selector_spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.hotkey_options, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); hotkey_selector_spinner.setAdapter(adapter); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View rootViewB = inflater.inflate(R.layout.fragment_hotkeys, container, false); rootView = rootViewB; return rootViewB; } 

La línea específica es:

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.hotkey_options, android.R.layout.simple_spinner_item); 

Importaciones:

 import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Spinner; import java.util.zip.Inflater; 

¿Cómo puedo arreglar esto?

4 Solutions collect form web for “El fragmento no se puede convertir en Contexto”

Desde los documentos Android de Fragmentos desde aquí :

Precaución: Si necesita un objeto Context dentro de su Fragmento, puede llamar a getActivity (). Sin embargo, tenga cuidado de llamar a getActivity () sólo cuando el fragmento está conectado a una actividad. Cuando el fragmento no está todavía conectado, o se ha desconectado durante el final de su ciclo de vida, getActivity () devolverá null.

Por lo tanto, además de cambiar this a getActivity() , también sugiero que trabaje con getActivity() en onActivityCreated() (ya que también necesita que la vista se infla primero)

 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } Spinner hotkey_selector_spinner = (Spinner) getView().findViewById(R.id.hotkey_selector_spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.hotkey_options, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); hotkey_selector_spinner.setAdapter(adapter); } 

Cambio

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.hotkey_options, android.R.layout.simple_spinner_item); 

a

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.hotkey_options, android.R.layout.simple_spinner_item); 

Acceso al contexto en fragmento mediante el uso de getActivity()

Fragment no se puede convertir en Context , una Activity puede.

Así que debes cambiar

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.hotkey_options, android.R.layout.simple_spinner_item); 

a

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.hotkey_options, android.R.layout.simple_spinner_item); 

La forma correcta de acceder al context dentro de cualquier Fragment es mediante el método getActivity() .

También puede obtenerlo directamente desde ViewGroup dentro de onCreateView . Si vas por este camino, no obtendrás null como podrías obtener de getActivity() ( siempre que lo instancias para una vista de interfaz de usuario antes ).

 fragment_context = container.getContext(); 
  • Elemento xml de la referencia de diseño de Android más adelante en el archivo
  • RelativeLayout no muestra todos los botones
  • Configuración del color del texto del botón con un estilo
  • Columnas para Android GridView Fit
  • ¿Cómo asignar id únicos a las vistas creadas dinámicamente?
  • Variables en los recursos XML: pasa valores de padres a hijos
  • XmlPullParser - token inesperado (android)
  • Cómo configurar la transparencia de una imagen de fondo Android xml file
  • Android - El botón de radio no muestra su texto
  • Error al analizar XML: prefijo no enlazado con barra de herramientas sdk 21
  • Cambiar del diseño main.xml a otro diseño
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.