Anteriormente estoy usando onAttach (Activity activity)
para obtener context
enFragment
Problema
El onAttach (Activity activity)
método quedó en desuso en el nivel 23 de API.
Solución
Ahora para obtener contexto Fragment
podemos usaronAttach (Context context)
onAttach (Context context)
- Se llama cuando un fragmento se une por primera vez a su
context
. onCreate(Bundle)
será llamado después de esto.
Documentación
/**
* Called when a fragment is first attached to its context.
* {@link #onCreate(Bundle)} will be called after this.
*/
@CallSuper
public void onAttach(Context context) {
mCalled = true;
final Activity hostActivity = mHost == null ? null : mHost.getActivity();
if (hostActivity != null) {
mCalled = false;
onAttach(hostActivity);
}
}
CÓDIGO DE MUESTRA
public class FirstFragment extends Fragment {
private Context mContext;
public FirstFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext=context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rooView=inflater.inflate(R.layout.fragment_first, container, false);
Toast.makeText(mContext, "THIS IS SAMPLE TOAST", Toast.LENGTH_SHORT).show();
// Inflate the layout for this fragment
return rooView;
}
}
NOTA
También podemos utilizar getActivity()
para conseguir context
en Fragments
pero getActivity()
podemos volver null
si el tu fragment
no está conectado actualmente a un padre activity
,