zoukankan      html  css  js  c++  java
  • AlertDialog中的EditText不能输入

    一、描述

    在项目中有碰到使用AlertDialog,给他设置自定义布局,自定义布局中有包含EditText,但是运行起来后发现EditText不能输入文字,没有焦点,一开始还以为是事件拦截掉了,后来试了很多方法还是不行。最后看了一下我的代码才发现,getWindow()后再设置视图,EditText是没有办法输入的。

    二、解决方法

    //之前的设置自定义视图代码,这样使用getWindow()方法设置视图的方式是不行的。
     private void showPromptDialog(String text, String function) {
            dlg = new AlertDialog.Builder(this).create();
            dlg.setCancelable(false);
            dlg.show();
            Window window = dlg.getWindow();
            window.setContentView(R.layout.cp_alertdialog_prompt);
       }

    加上这一条代码,EditText就可以正常输入了。

    dlg.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

    //正确实现方式
    private void showPromptDialog(String text, String function) {
            dlg = new AlertDialog.Builder(this).create();
            dlg.setCancelable(false);
            dlg.show();
            Window window = dlg.getWindow();
            window.setContentView(R.layout.cp_alertdialog_prompt);
         dlg.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
       }

    推荐连接 http://blog.csdn.net/junwen0814/article/details/50486007
  • 相关阅读:
    [React Testing] Intro to Shallow Rendering
    人物-IT-马化腾:马化腾
    人物-IT-雷军:雷军
    Less:Less(CSS预处理语言)
    文学-谚语-英文谚语:英文谚语
    文明-墓-太阳墓:太阳墓
    地理-撒哈拉之眼:撒哈拉之眼
    生物-海底人:海底人
    地理-蓝洞:蓝洞
    文明-根达亚文明:根达亚文明
  • 原文地址:https://www.cnblogs.com/liheng-android/p/6872570.html
Copyright © 2011-2022 走看看