Activity to Fragment Converter?

Muhammad Sabiq Danurrohma
pie-o

--

Halo!

Kalian pasti sedang mengalami masalah pada source code android kalian karena yang awalnya menu navigasi menggunakan new Intent kemudian harus dirubah menggunakan fragment. Lalu pasti banyak banget merah-merah di code kalian yang menandakan code tersebut tidak bisa diresolve karena yang awalnya extends Activity lalu diubah menjadi extends Fragment. Gak usah panik! Simak tulisan dibawah ini dijamin dalam kurang dari 10 menit codemu akan bisa berjalan kembali.

Pada umumnya di code activity kalian pasti terdapat code findViewById terus code tersebut jadi merah. Gampang, tinggal ubah code berikut seperti dibawah ini:

Before:
ImageView image = findViewById(R.id.imageView1)
After:
View mView = inflater.inflate(R.layout.welcome, null);
ImageView image = (ImageView) mView.findViewById(R.id.imageView1);

Code kalian terdapat pemanggilan context activity? Biasanya kalau di activity cara manggilnya itu getApplicationContext(). Lalu code tersebut jadi merah! Lakukan perubahan seperti dibawah ini:

Before:
Toast.maketext(getApplicationContext(),"...",Toast.LENGTH_LONG).show();
After:
Toast.maketext(getActivity().getApplicationContext(), "...", Toast.LENGTH_LONG).show();

Yang terakhir biasanya inisialisasi variabel ada di method OnCreate untuk yang extends Activity tetapi ketika extends Fragment kok ada OnCreate sama OnCreateView? Pada Fragment yang mempunyai fungsionalitas sama dengan OnCreate pada Activity adalah OnCreateView sehingga lakukan copy code dari OnCreate pada Activity ke dalam OnCreateView pada Fragment.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mView = inflater.inflate(R.layout.fragment_profile, container, false);
mtext = (TextView) mView.findViewById(R.id.textView);
mtext.setTextSize(getResources().getDimension(R.dimen.font_size_small));
mtext.setText("Loading Data...");
profileToArList= new ArrayList<String>();
ctx = getActivity().getApplicationContext();
new RetrieveDB().execute("https://sibujang-app-staging.herokuapp.com/api/staffs/000-375");

return mView;
}

Sekian tips merubah kelas java dari extends Activity menjadi extends Fragment. Semoga membantu!

--

--