android 自定义的dialog,edit text 不能获得焦点,弹出软键盘。

代码如下:Viewview=LayoutInflater.from(mContext).inflater(R.layout.custom_dialog,null);Ale... 代码如下: View view = LayoutInflater.from(mContext).inflater(R.layout.custom_dialog, null); AlerDialog dialog = new AlerDialog.builder(mContext).create(); dialog.show(); Window window = dialog.getWindow(); window.setContentView(view); custom_dialog.xml 里面包含一个EditText, 可是打开dialog ,没有自己弹出软键盘。 求求大侠们帮帮忙,急用!!! 展开
 我来答
厦门侯
高粉答主

2016-01-31 · 信息管理员
厦门侯
采纳数:30618 获赞数:90296

向TA提问 私信TA
展开全部
1、首先自定义布局
2、把自定义布局放入dialog中显示
3、通过自定义布局查找对应的edittext组件
final View DialogView = a .inflate ( R.layout.loand, null);//1、自定义布局
//创建对话框
AlertDialog dlg = new AlertDialog.Builder(loand.this)
.setTitle("登录框")
.setView(DialogView)//设置自定义对话框的样式,2、自定义布局放入dialog中显示
.setPositiveButton("登陆", //设置"确定"按钮
new DialogInterface.OnClickListener() //设置事件监听{
public void onClick(DialogInterface dialog, int whichButton){editText1 =(EditText) DialogView.findViewById(R.id.editText1);
editText2 =(EditText) DialogView.findViewById(R.id.editText2);//3、过自定义布局查找对应的edittext组件
String id = editText1.getText().toString();
String password = editText2.getText().toString();
百度网友412ed99
2016-02-29 · TA获得超过800个赞
知道小有建树答主
回答量:650
采纳率:100%
帮助的人:186万
展开全部
原因1:应该是因为你的dialog没有获取焦点
解决方案:inputDialog.setFocusable(true)
//inputDialog是你的alertdialog

原因2:手机反应延迟,或者是手机输入法的问题
解决方案:换一部手机试试看,或者另外装一个手机输入法

原因3;可能确实是edittext出问题了
解决方案:
Layout layout=new android.widget.LinearLayout(ctx)
layout.setOrientation(1)
EditText Etext=new android.widget.EditText(ctx)
Etext.setHint("提示")
Etext.setText("内容")
layout.addView(Etext)
//将Etext添加到线性布局layout中

//ctx是上下文

原因4:dialog出问题了(没写好)

ScrollView sv=new android.widget.ScrollView(ctx)
AlertDialog inputDialog=new android.app.AlertDialog.Builder(ctx).setView(sv).setTitle(title).setNegativeButton("确定",new android.content.DialogInterface.OnClickListener(){
onClick:function(mp){
//执行某些事情

inputDialog.dismiss()
//确认后对话框消失
}
}
)
.create()

inputDialog.setCanceledOnTouchOutside(false)
//这个是触碰外面对话框不会消失

inputDialog.show()
//显示对话框,必须要有!不然不会显示

//ctx是上下文
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-30
展开全部
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.toggleSoftInput(0,
InputMethodManager.HIDE_NOT_ALWAYS);这是让软键盘弹出的代码。如果是对话框的话,需要延迟一些时间在执行,不然出现之后,又消失了。 Timer timer = new Timer();
timer.schedule(new TimerTask() { @Override
public void run() {
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.toggleSoftInput(0,
InputMethodManager.HIDE_NOT_ALWAYS);
}
}, 1000);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茶达人
2016-02-19 · TA获得超过3048个赞
知道大有可为答主
回答量:3838
采纳率:66%
帮助的人:243万
展开全部
android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

android:state_enabled是设置是否响应事件,指所有事件
选中 = 获取焦点 + 点击
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式