06 November 2015

Kembali Ke Awal - Android (Burdah)

Phew, hampir setahun ga main kode, yup, kode apa aja :)
Tahun ini rada sibuk, ujian akhir, tugas-tugas akhir, hal-hal lain yang makan waktu, sampe terahir kelulusan..
Yah, tapi alasan yang paling jelas, karna perangkat yang ga ndukung hahaha :DDD

Main apa sekarang hmm.. android lagi kali, besuk coba yang lain..
Sampai lupa semua, untuk sekedar menyegarkan ingatan, coba dengan fungsi paling dasar dari hampir semua aplikasi: "menampilkan teks".

Coba buat dengan template standard: new project next, next, next, buat aktifitas baru -kosong- dengan tampilan pager;

Di android cara paling mudah menampilkan text dengan TextView atau bisa juga dengan WebView, dalam praktik ini saya menggunakan TextView, contoh:

// digunakan untuk mendapatkan data html-nya (raw)
String htmlAsString = getArguments().getString("Teks Burdah");
// digunakan untuk mendapatkan data html, 

// tapi dalam bentuk yang bisa digunakan oleh TextView
Spanned htmlAsSpanned = Html.fromHtml(htmlAsString);

// mengatur html dengan TextView
TextView textView = (TextView) rootView.findViewById(R.id.teks_burdah);
textView.setText(htmlAsSpanned);

// mengatur html dengan WebView
WebView webView = (WebView) rootView.findViewById(R.id.teks_burdahW);
webView.loadDataWithBaseURL(null, htmlAsString, "text/html", "utf-8", null);


Contoh di atas potongan kode dari aplikasi yang digunakan dalam praktik kali ini;
dalam kode baris ke-2 Html.fromHtml(htmlAsString) berfungsi untuk mengambil data dalam bentuk html yang bisa diproses oleh TextView.
Juga bisa dilihat, kode pertama mendapatkan data dengan: getArguments().getString("Teks Burdah")
Ya, kode ini berasal dari dari sebuah fragment yang tugasnya hanya menampilkan teks saja :)
Tugas pemrosesan ada di aktifiti utama.

Sebenarnya kalau hanya menampilkan data teks bisa:

// ambil dari /res/values/strings.xml langsung
getString(R.string.bagian1)
// atau ketik langsung teks yang ditampilkan
getString("Teks yang ditampilkan")


Tapi dalam aplikasi yang saya gunakan praktik kali ini harus menampilkan data dari 10 halaman, jadi saya pakai data dalam format html biar lebih mudah.
Alasan lain, karena aplikasi ini ditujukan untuk hp bututku yang versi 2.3.6 (API 10) itu :D
Versi yang belum dukung penuh tulisan Arab. tulisan Arab akan ditampilkan putus-putus ga bisa dibaca :p
Jadi sebelum data ditampilkan, data diolah terlebih dahulu, di sini saya menggunakan Better Arabic Reshaper, baru, data yang sudah diolah diumpan ke fragment yang bertugas menampilkannya.

Berikutnya membuat pager "seperti" dimulai dari kanan ke kiri;

mViewPager = (ViewPager) findViewById(R.id.pager);
// pager dimulai dari item ke-10 (yang merupakan item terakhir)
mViewPager.setCurrentItem(10);


Yup ini hanya trik, mungkin fitur ini kedepan akan disediakan :)

Tadaaaaa jadi...


Burdah.apk:
https://goo.gl/prt9m3


---
ditest pada: Android 2.3.6
menggunakan: Eclipse - Android Developer Tools v22.6.2-1085508, Ubuntu 14.04 LTS

sumber:
https://github.com/agawish/Better-Arabic-Reshaper
http://stackoverflow.com/questions/2116162/how-to-display-html-in-textview
http://stackoverflow.com/questions/18781944/how-to-make-my-viewpager-swipe-from-right-to-left
http://ulinuhaasnawi.blogspot.co.id/2014/01/sair-burdah-lengkap-dengan-terjemah-nya.html