“JSON stands for JavaScript Object Notation. JSON is a lightweight format for storing and transporting data. JSON is often used when data is sent from a server to a web page. JSON is “self-describing” and easy to understand”, https://www.w3schools.com said. As we know, JSON is one of the important part on development process exactly when we are going to parse data. I usually use Gson to ease the parsing data process. For me, parsing object data is easier than parsing array data. Usually I forget how to parse array data directly into an array list. So I wrote it down here. Check it
If you use webview on developing android application and you arabic text be like Scandinavian or Icelandic Character(example: Ù?? بÙ??اللَّهÙ?? Ù…Ù??Ù†ÙŽ الشَّيْطَانÙ?? الرَّجÙ??يمÙ), you must use this type mime
1 |
text/html; charset=utf-8 |
This is for the example:
1 |
webView.loadData(HTMLCODE, "text/html; charset=utf-8", "utf-8"); |
may be useful…. 🙂
RecyclerView On Touch item listener
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
public interface ClickListener { void onClick(View view, int position); void onLongClick(View view, int position); } class RecyclerTouchListener implements RecyclerView.OnItemTouchListener { private ClickListener clicklistener; private GestureDetector gestureDetector; public RecyclerTouchListener(Context context, final RecyclerView recycleView, final ClickListener clicklistener) { this.clicklistener = clicklistener; gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } @Override public void onLongPress(MotionEvent e) { View child = recycleView.findChildViewUnder(e.getX(), e.getY()); if (child != null && clicklistener != null) { clicklistener.onLongClick(child, recycleView.getChildAdapterPosition(child)); } } }); } @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { View child = rv.findChildViewUnder(e.getX(), e.getY()); if (child != null && clicklistener != null && gestureDetector.onTouchEvent(e)) { clicklistener.onClick(child, rv.getChildAdapterPosition(child)); } return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } } |
Pengaplikasian
1 2 3 4 5 6 7 8 9 10 11 12 |
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, recyclerView, new ClickListener() { @Override public void onClick(View view, final int position) { // Do what do you want } @Override public void onLongClick(View view, int position) { // Do what do you want on long click item } })); |
Telepon merupakan fungsi/ fitur dasar dari smartphone yang kini telah berkembang pesat. Meskipun kini telpon bukan menjadi minat utama dari para pengguna smartphone namun telepon masih menjadi salah satu solusi andalan untuk melakukan voice call secara langsung. Berkembangnya Voice over Internet Protocol (VoIP) tidak terlalu menggoyahkan fungsi telepon itu sendiri. Berikut saya akan memberikan contoh simpel untuk melakukan dial dari aplikasi yang kita kembangkan.
Pengembangan aplikasi android yang bermacam-macam jenisnya memunculkan berbagai ide-ide dan trobosan baru. Inovasi yang telah di ciptakan oleh developer dapat mempermudah penggunaan aplikasi yang kita kembangkan. Dalam kesempatan ini, saya akan memberikan contoh simpel handling untuk mencegah aplikasi langsung keluar jika kita tidak sengaja menyentuh tombol kembali (default) pada smartphone kita. Event yang kita gunakan disini akan kita eksekusi dalam methode onBackPressed(). berikut adalah source code-nya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public boolean doubleTapParam = false; @Override public void onBackPressed() { if (doubleTapParam) { super.onBackPressed(); return; } this.doubleTapParam = true; Toast.makeText(this, "Tap sekali lagi untuk keluar", Toast.LENGTH_SHORT).show(); new Handler().postDelayed(new Runnable() { @Override public void run() { doubleTapParam = false; } }, 2000); } |
Berdasarkan source code diatas, saya menggunakan satu variable boolean yang saya inisialisasi false. Pada saat pertama kita menekan tombol back, kondisi awal parameter adalah false, jadi tidaklah mungkin akan mengeksekusi super.onBackPressed();. Setelah selesai melakukan pengecekan, variable doubleTapParam
Looping merupakan salah satu aspek yang sangat melekat pada semua konsep pemrograman. Looping sering digunakan untuk pengecekan, pengurutan, dan lain sebagainya. Sering kali juga kita membutuhkan looping untuk membuah sebuah counter. Kita dapat menjalankan perintah yang kita kehendaki setiap x waktu sekali sesuai selera. Setelah sebelumnya sayamemberikan contoh membuat looping menggunakan event Handler(), dalam kesempatan ini saya akan memberikan contoh perulangan untuk menampilkan view setiap beberapa detik sekali menggunakan Timer.
Looping merupakan salah satu aspek yang sangat melekat pada semua konsep pemrograman. Looping sering digunakan untuk pengecekan, pengurutan, dan lain sebagainya. Sering kali juga kita membutuhkan looping untuk membuah sebuah counter. Kita dapat menjalankan perintah yang kita kehendaki setiap x waktu sekali sesuai selera. Dalam kesempatan ini saya akan memberikan contoh perulangan untuk menampilkan view setiap beberapa detik sekali menggunakan event Handler().