首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >强制软键盘显示EditText何时获得焦点

强制软键盘显示EditText何时获得焦点
EN

Stack Overflow用户
提问于 2013-08-14 16:55:36
回答 5查看 43.9K关注 0票数 13

我有一个以编程方式传递焦点的EditText。但是当我这样做的时候,我希望键盘也能显示出来(然后当那个EditText失去焦点时就会下降)。现在,用户必须点击EditText才能显示键盘--即使EditText已经有了焦点。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-08-14 16:59:52

我就是这样展示键盘的:

代码语言:javascript
运行
复制
EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
票数 19
EN

Stack Overflow用户

发布于 2013-08-14 17:04:54

代码语言:javascript
运行
复制
<activity   android:name=".YourActivity"
            android:windowSoftInputMode="stateVisible" />

把这个添加到清单文件中..。

票数 23
EN

Stack Overflow用户

发布于 2013-08-14 17:05:32

将清单中的活动设置为在屏幕上显示EditText框时自动弹出键盘

代码语言:javascript
运行
复制
<activity android:windowSoftInputMode="stateAlwaysVisible" ... />

若要隐藏丢失焦点的键盘,请为EditText设置一个EditText。

在onCreate()中

代码语言:javascript
运行
复制
EditText editText = (EditText) findViewById(R.id.textbox);
OnFocusChangeListener ofcListener = new MyFocusChangeListener();
editText.setOnFocusChangeListener(ofcListener);

添加这个类

代码语言:javascript
运行
复制
private class MyFocusChangeListener implements OnFocusChangeListener {

    public void onFocusChange(View v, boolean hasFocus){

        if(v.getId() == R.id.textbox && !hasFocus) {

            InputMethodManager imm =  (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

        }
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18237773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档