为什么android 自定义dilog里的edittext不弹出软键盘?

问题描述

为什么android 自定义dilog里的edittext不弹出软键盘?

LayoutInflater inflater = LayoutInflater.from(mContext);

LinearLayout dilogview = (LinearLayout) inflater.inflate(R.layout.dilog_comment, null);
final Dialog dialog = new AlertDialog.Builder(mContext).create();
dialog.show();
dialog.getWindow().setContentView(dilogview);
Button btn_comment = (Button) dilogview.findViewById(R.id.dilog_comment_btn_ok);
final EditText et_comment = (EditText) dilogview.findViewById(R.id.dilog_comment_et);


```我的dilog是这样写的,请问各位大神,光标在edittext上,可为什么不弹出软键盘,点击edittext也不出软键盘

解决方案

我以前也遇到过这个问题啊,自定义Dialog继承自AlertDialog,没有办法弹出软键盘,后来只改了一个地方,用Dialog,软键盘就出来了。AlertDialog源码中本身有代码禁用了软键盘,因为AlertDialog本身是没有输入框的,android本意就是让我们自定义对话框的时候选择Dialog。
你这一句:final Dialog dialog = new AlertDialog.Builder(mContext).create();
可以直接new Dialog(context)试一试看

你可以参考下我以前写的代码,很乱,几年写的=.=
// 登录的提示框
private void showDL(){
final Dialog dig = new Dialog(this);
dig.show();
Window window2 = dig.getWindow();
/*
*这个方法无法弹出软键盘
*final AlertDialog dlg = new AlertDialog.Builder(this).create();
*dlg.show();
*Window window = dlg.getWindow();
*/
// 自定义的dialog布局
window2.setContentView(R.layout.denglu_ttishikuang);

    final EditText edt_dl = (EditText) window2.findViewById(R.id.tsk_et_zh);
    final EditText edt_mm = (EditText) window2.findViewById(R.id.tsk_et_mm);
    Button btn_qx = (Button) window2.findViewById(R.id.tsk_but_qx);
    Button btn_dl = (Button) window2.findViewById(R.id.tsk_but_dl);
    TextView tv_zhuce = (TextView) window2.findViewById(R.id.tsk_tv_zhuce);

    btn_dl.setOnClickListener(new OnClickListener() {
        public void onClick(View arg0) {
            // 登录操作
            String zhanghao = edt_dl.getText().toString();
            String password = edt_mm.getText().toString();
            LoginDL(zhanghao, password);
            dig.cancel();
        }
    });
    btn_qx.setOnClickListener(new OnClickListener() {
        public void onClick(View arg0) {
            // 取消操作
            dig.cancel();
        }
    });
    tv_zhuce.setOnClickListener(new OnClickListener() {
        public void onClick(View arg0) {
            // 注册操作
            Intent intent = new Intent(MainActivity.this, ZhuCe.class);
            startActivity(intent);
        }
    });
}

希望能帮到你啊

解决方案二:

android edittext不弹出软键盘
android edittext不弹出软键盘
android edittext不弹出软键盘

解决方案三:

Popwindow和editText的焦点冲突问题,可能导致弹不出软键盘,你可以强制弹出软件盘来解决这个问题

时间: 2024-10-24 18:37:45

为什么android 自定义dilog里的edittext不弹出软键盘?的相关文章

android edittext在有焦点时,再次点击弹出软键盘,edittext会被挡住。

问题描述 android edittext在有焦点时,再次点击弹出软键盘,edittext会被挡住. android edittext在有焦点时,再次点击弹出软键盘,界面不会上移,edittext会被挡住.多谢大神了,有没有好一些的方法. 解决方案 Android的EditText在怎样获取焦点并弹出软键盘android edittext不弹出软键盘android EditText软键盘弹出控制 解决方案二: 方法很多,网上有介绍,比如你可以把你所有的元素都放到scrollview中 解决方案三

【Android】自定义带进度条的WebView,修复不弹出软键盘的BUG

记录下最近开发中研究的带进度条的WebView 自定义类吧. 其实网上有不少这样的帖子,但是都没有一个完整的好用的例子,最关键的是,用网上的例子后有一个很明显的bug,就是遇到输入框的话没法弹出软键盘.研究了好久总算搞定了.特此记录下. 直接上源代码,关于代码的解释,个人感觉注释中已经添加的足够清楚了. ProgressWebView import android.content.Context; import android.content.res.Resources; import andr

Android编程之ListView和EditText发布帖子隐藏软键盘功能详解

本文实例讲述了Android编程之ListView和EditText发布帖子隐藏软键盘功能.分享给大家供大家参考,具体如下: 在Android开发中,手动调用软件盘的隐藏和显示有时候也是非常常见的需求. EditText控件实现了点击打开软键盘输入功能,but why ? 为什么EditText可以点击弹出keyboard,而TextView却不可以,EditText继承TextView做了哪些修改呢?关于这些问题得查看相关具体代码如何实现可以参考,看似简单的控件其实系统封装实现的很复杂.这里告

Android 设置Edittext获取焦点并弹出软键盘

Android 设置Edittext获取焦点并弹出软键盘 /** * EditText获取焦点并显示软键盘 */ public static void showSoftInputFromWindow(Activity activity, EditText editText) { editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus(); activity.getWind

对话框-android 弹出软键盘?

问题描述 android 弹出软键盘? 在一个页面 ,弹出对话框的同时弹出软键盘 是通过点击事件还是怎么处理 ,我需要通过点击事件弹出对话框文本的同时弹出软键盘? 解决方案 InputMethodManager inputMethodManager = (InputMethodManager) a.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(v, InputMethodManag

android避免弹出软键盘遮盖listview的简单方法_Android

做开发的时候,我们常常把listview放中间,然后底部放置一个edittext控件,这样导致editext控件获得焦点的时候,输入法弹出,Edittext控件上移,挡住了listview的部分数据,这样不太美观.所以,我们需要让listview也跟着上移,所以需要: 方法一:在xml文件中,设置listview属性时候加上这句就ok了android:transcriptMode="normal": 方法二:在程序中加入语句: listView.setTranscriptMode(Li

android TextView 弹出软键盘

问题描述 android TextView 弹出软键盘 背景:我想在一个ViewGroup上添加一个TextView ,操作说明,点击ViewGroup中央,出现一个光标在那并弹出软键盘,在键盘上输入文字,对应的光标的位置会出现键盘上输入的文字,点击换行按钮随之换行继续输入,请问如何实现? 解决方案 android系统里, TextView得到焦点后会自动弹出软键盘 至于输入多行的问题,可以参考这个 Android TextView多行文本滚动实现 http://blog.csdn.net/zz

如何让edittext获得焦点时弹出软键盘,不让软键盘超出edittext的位置

问题描述 如何让edittext获得焦点时弹出软键盘,不让软键盘超出edittext的位置 如何让edittext获得焦点时弹出软键盘,不让软键盘超出edittext的位置 解决方案 关于EditText获得焦点不弹出软键盘Android中设置EditText获得焦点时不弹出软键盘Android中设置EditText获得焦点时不弹出软键盘 解决方案二: 浮动edittext到视窗顶端或底端 解决方案三: 根据焦点的位置,设置软键盘显示位置

EditText 默认不获取焦点,弹出软键盘布局变形解决方案

关于弹出软键盘布局变形解决方案: 在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan" 在实际开发中,有的页面用到Edittext控件,这时候进入该页面可能会自动弹出输入法 这么显示不太友好,所以需要设置一下让Edittext默认不自动获取焦点.在网上查资料解决办法如下: 在EditText的父级控件中找一个,设置成 android:focusable="true"