Saya baru mengenal Android. Saya sudah menghabiskan dua jam untuk mencari. Apapun yang saya coba, softkeyboard tidak pernah ditampilkan untuk saya EditText
. Saya membuatnya dengan sederhana:
EditText editText = (EditText)findViewById(R.id.editText);
Saya mencoba:
editText.requestFocus();//i tried without this line too
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
dan:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
});
saya juga mencoba:
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
saya mencoba memasukkan baris ini ke dalam AndroidManifest.xml
file:
android:windowSoftInputMode="stateVisible|adjustResize"
tapi semuanya sia-sia. Itu tidak pernah terlihat. Apa yang saya lewatkan?
Jawaban:
Anda perlu memastikan bahwa emulator Anda tidak disetel untuk menggunakan keyboard hardware . Ini dapat dilakukan dengan memilih
Edit
emulator yang dipilih di AVD. Kemudian hapus centang padaHardware keyboard present
pengaturan.Anda juga dapat mencoba menggunakan emulator lain, seperti Genymotion . Ini mendukung akselerasi hardware penuh (CPU multi-core serta GPU) dan berjalan jauh lebih cepat daripada image emulator android mana pun. Jika Anda menggunakan Genymotion, Anda perlu menonaktifkan keyboard perangkat keras di Android (lihat di bawah untuk detailnya).
Untuk menonaktifkan keyboard perangkat keras di Genymotion:
Pergi ke
Settings
->Language & input
dan bukaDefault
item di bawahKeyboard & Input Methods
. AdaHardware
pengaturan yang dapat Anda aktifkan / nonaktifkan. Saat aktif, Anda menggunakan keyboard fisik dan saat tidak aktif , keyboard lunak standar akan muncul setiap kali bidang teks mendapatkan fokus.Tangkapan layar untuk pengaturan Genymotion:
sumber
Pada versi 2.1.1 - klik pada pengaturan perangkat virtual Anda - kemudian pilih kotak centang "gunakan keyboard virtual untuk mengetik".
sumber
Ada dua tempat untuk membatalkan pilihan keyboard perangkat keras di AS 1.1.0. Yang ini tidak cukup:
Harus melakukan ini (klik
Tools | Android | AVD Manager
; lalu buat baru atau edit AVD lama lalu klikShow Advanced Settings
; gulir ke bawah dan hapusEnable keyboard input
):sumber
Metode untuk mengaktifkan soft keyboard di layar untuk Emulator Android Studio 2+ bergantung pada level API emulator. Saya telah menguji berbagai metode yang dimulai dengan API 15 dan telah mencatat langkah-langkah di bawah ini.
[A] API 15, 17, 19 dan 21.
Langkah-langkah berikut akan mengaktifkan keyboard lunak di layar tetapi akan menonaktifkan kemampuan untuk memasukkan teks dan berinteraksi dengan AVD menggunakan keyboard perangkat keras komputer.
[B] API 22
Keyboard lunak ditampilkan tidak peduli apa yang Anda lakukan dengan pengaturan keyboard perangkat keras. Jika Anda ingin mengaktifkan dukungan keyboard perangkat keras di samping keyboard lunak,
[C] API 23
Jika Anda ingin menggunakan perangkat keras dan keyboard lunak, maka ...
Jika Anda tidak memerlukan keyboard perangkat keras, dalam pengaturan lanjutan AVD, hapus centang pada opsi "Aktifkan masukan keyboard". Anda tidak perlu mengubah pengaturan apa pun di perangkat virtual.
[D] API 24 dan 25
Jika opsi Aktifkan masukan keyboard dipilih di AVD, Anda sekarang dapat menggunakan masukan keyboard keras dan lunak. Jika Anda tidak mencentang opsi di AVD, keyboard lunak akan tetap ditampilkan.
[E] API 26
Persis sama dengan [D] API 24 dan 25 kecuali Anda perlu menavigasi melalui tingkat menu "Sistem" tambahan di setelan perangkat sebelum Anda masuk ke Bahasa dan masukan / Keyboard Fisik
sumber
Mungkin emulator Anda tidak mendukung softkeyboard ..
Tambahkan properti hardware. Dukungan Keyboard dan setel ke true untuk emulator Anda.
Jika sudah benar maka Periksa jawaban ini.
sumber
Memperlihatkan:
EditText editText = (EditText) findViewById(R.id.myEdit); InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // only will trigger it if no physical keyboard is open mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
Dan untuk menyembunyikan:
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);
Coba saja yang ini ....
sumber