一、Activity和Fragment中顯示和隱藏
- 顯示鍵盤
public static void showKeyBoard(EditText mEditText){
InputMethodManager inputManager = (InputMethodManager) mEditText.getContext() .getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(mEditText, 0);
}
- 隱藏鍵盤(根據(jù)個(gè)人情況可以選擇不要返回值)
/**
* 隱藏輸入面板
*
* @param activity
* @return true 成功隱藏面板艾蓝,false 沒有隱藏面板或者沒有面板可以隱藏
*/
public static boolean hideSoftInputFromWindow(Activity activity) {
if (activity != null) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
return imm.hideSoftInputFromWindow(activity.getWindow().getDecorView().getWindowToken(), 0);
}
}
return false;
}
二命浴、部分Dialog中隱藏和顯示
模擬電商APP購物車列表中點(diǎn)擊TextView旋炒,彈出Dialog選中內(nèi)容闹击,并彈出鍵盤進(jìn)行編輯返弹,點(diǎn)擊確定或取消后隱藏鍵盤
- Dialog中添加一個(gè)EditText,獲取焦點(diǎn)并選中Model傳入文字
- 延遲顯示鍵盤:需要等dialog Show之后在進(jìn)行彈出鍵盤滤淳,否則鍵盤不能正確顯示。
- 隱藏鍵盤:部分情況下通過獲取activity隱藏鍵盤并不能成功砌左。這里傳入edit來隱藏鍵盤脖咐。
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
//Dialog中添加一個(gè)EditText,獲取焦點(diǎn)并選中Model傳入文字
val edit = EditText(context)
edit.inputType = InputType.TYPE_CLASS_NUMBER
edit.setText(model.quantity.toString())
edit.setSelectAllOnFocus(true)
AlertDialog.Builder(context)
.setCancelable(true)
.setTitle("請輸入您的內(nèi)容")
.setView(edit)
.setPositiveButton("確認(rèn)") { dialog, which ->
if (edit.text.toString().isNotEmpty()) {
val count = edit.text.toString().toInt()
if (mode.stockQuantity < count)
ToastUtil.showMessage("庫存不足")
else {
holder.etNumber.text = Editable.Factory.getInstance().newEditable(count.toString())
onItemClickListener.onNumberChangedUpdatePriceListener(position, count)
}
//隱藏鍵盤汇歹,這里傳入edit隱藏鍵盤屁擅。
imm?.hideSoftInputFromWindow(edit.windowToken, 0)
}
}
.setNegativeButton("取消") { dialog, which ->
imm?.hideSoftInputFromWindow(edit.windowToken, 0)
}
.show()
//延遲顯示鍵盤:需要等dialog Show之后在進(jìn)行彈出鍵盤,否則鍵盤不能正確顯示产弹。
val timer = Timer()
timer.schedule(object : TimerTask() {
override fun run() {
imm.showSoftInput(edit, 0)
}
}, 300)
寫在最后:1派歌、獲取輸入法管理器 2、顯示痰哨、隱藏軟鍵盤(傳入對應(yīng)的環(huán)境或控件)