Sebelumnya saya menggunakan onAttach (Activity activity)
untuk mendapatkan context
diFragment
Masalah
The onAttach (Activity activity)
Metode ini usang dalam API tingkat 23.
Larutan
Sekarang untuk mendapatkan konteks Fragment
bisa kita gunakanonAttach (Context context)
onAttach (Context context)
- Disebut ketika sebuah fragmen pertama kali dilampirkan padanya
context
. onCreate(Bundle)
akan dipanggil setelah ini.
Dokumentasi
/**
* 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);
}
}
KODE SAMPEL
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;
}
}
CATATAN
Kita juga bisa menggunakan getActivity()
untuk mendapatkan context
di Fragments
tetapi getActivity()
dapat kembali null
jika Anda yang fragment
saat ini tidak melekat pada orang tua activity
,