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(); 
  • Edición de Edición personalizada de Android y NextFocusDown
  • Conjunto de atributos, obtener enumeración por nombre
  • No ejecuta la primera actividad
  • ¿Es posible crear un VectorDrawable desde el sistema de archivos (archivo * .xml)
  • El diálogo del progreso tiene el fondo blanco en dispositivos del Lollipop,
  • Establecer una fuente específica en un styles.xml
  • Android Google Map error android.view.InflateException: Archivo XML binario línea # 6: error iniciando el fragmento de clase
  • FrameLayout no se puede convertir en android.widget.AbsListView
  • Diseño de vistas personalizadas
  • ¿Crear una vista personalizada inflando un diseño?
  • Agregar efectos de sombra de gota al campo EditarTexto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.