Loading

Cara Close Keyboard di Android dengan Code Java

April 2, 2018     bagicode    

Tips dan Trik Code Android

Hai coders, kali ini saya akan membuat catatan bagaimana cara melakukan close keyboard di Android. Ini biasanya saya lakukan ketika form layout yang kita buat terlalu banyak sehingga keyboard menutupi daerah form. Untuk melakukan case ini sebenarnya ada beberapa cara diantaranya kalian bisa menambahkan code di bagian manifest ataupun di javanya langsung (activity).

Baiklah, tanpa basa – basi mari kita ungkap kebenarannya :p wkwk

Cara 1 : code java

Cara ini adalah cara yang menurut saya paling mudah yaitu menambahkan fungsi turunan dari kelas activity dengan menggunakan fungsi dispatchTouchEvent dimana fungsi ini akan berjalan ketika kita melakukan klik didaerah apapun pada layar smartphone kalian, berikut ini full fungsinya :

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
View view = getCurrentFocus();
if (view != null && (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_MOVE)
&& view instanceof EditText && !view.getClass().getName().startsWith(“android.webkit.”)) {
int scrcoords[] = new int[2];
view.getLocationOnScreen(scrcoords);
float x = ev.getRawX() + view.getLeft() – scrcoords[0];
float y = ev.getRawY() + view.getTop() – scrcoords[1];
if (x < view.getLeft() || x > view.getRight() || y < view.getTop() || y > view.getBottom())
((InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow((this.getWindow().getDecorView().getApplicationWindowToken()), 0);
}
return super.dispatchTouchEvent(ev);
}

Cara 2 : code Manifest

Cara kedua adalah dengan menambahkan code windowSoftInputMode pada setiap pemanggilan activity di manifest. Berikut ini full contohnya :

<activity android:name=”.YourActivity”
android:windowSoftInputMode=”stateHidden”/>

Namun perlu diingat, code cara kedua ini hanya akan menutup keyboard saat pertama kali membuka halaman YourActivity sehingga kalian tidak bisa menutup keyboard dengan cara klik dimanapun seperti code 1. Cara terbaiknya bagi kalian adalah menggabungkan fungsi 1 dan 2 sehingga handle untuk load halaman pertama ada dan untuk load klik dimanpun juga bisa jalan.

Cara 3 : code xml

Nah untuk cara ketiga, sebenarnya bisa diterapkan untuk code xml maupun dengan java yaitu dengan memanfaatkan requestFocus. Lah kok bisa ? bisa jika kalian memiliki view lain pada 1 halaman, misalnya kalian membuat form dengan menggunakan textview dan edittext. Nah kalian bisa mengarahkan requestFocusnya kepada textview karna defaultnya requestFocus akan diarahkan ke form yang bisa diisi. Berikut contoh code menggunakan java :

edittext.requestFocus();

code menggunakan xml

<EditText...>
    <requestFocus />
</EditText>

Nah perlu diingat bahwa cara 3 sama seperti cara 2 yaitu hanya menghilangkan keyboard saat pertama kali di load saja., silahkan kalian explorer lebih dalam ya.

 

Demikianlah catatan kecil ini, semoga bermanfaat bagi kita semua 😀 jika kalian punya trick yang lebih jitu, silahkan share di kolom komentar ya. Selamat berjuang

Categories: Tutorial Android

Leave a Reply