需求中需要点击按钮弹出dialog对话框,在点击确定后焦点自动定位到Edittext中并弹出软键盘,开始把获取焦点并弹出软键盘代码写在确认按钮 Listener中,但只能自动获取焦点,软键盘无法弹出,废了好大半天也没搞出来,后来采用handler传递机制完美解决,具体原理不太清楚,有知道的可以私信我这个Android渣渣,不胜感激
tv_confirm.set Listener(new View. Listener() {
@Override
public void (View v) {
mdialog.dismiss();
// 必须采用handler传递,否则导致键盘无法弹出
handler.sendEmptyMessage(100);
}
});
上边为点击dialog的确认按钮逻辑
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 100:
edit2.setVisibility(View.VISIBLE);
edit2.setHint(\"wweeee\");
edit2.setFocusable(true);
edit2.setFocusableInTouchMode(true);
edit2.requestFocus();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
InputMethodManager imm = (InputMethodManager) getSystemService(FoucsAnSoftinputActivity.this.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit2, 0);
break;
}
}
};
上边为handler中获取焦点及弹出软键盘逻辑代码
继续阅读与本文标签相同的文章
上一篇 :
剑指offer-60:把二叉树打印成多行
-
Spring Cloud Alibaba实战(一) - 概述
2026-05-18栏目: 教程
-
php系列----->通过PHP数组实现队列
2026-05-18栏目: 教程
-
MySQL 数据库铁律
2026-05-18栏目: 教程
-
Java 13 明天发布,最新最全新特性解读
2026-05-18栏目: 教程
-
如何使用phpMyAdmin导出Joomla数据库
2026-05-18栏目: 教程
