[转]android自动弹出软键盘(输入键盘)

转自:http://www.devdiv.com/home.php?mod=space&uid=65729&do=blog&id=11847

很多应用中对于一个界面比如进入搜索界面或者修改信息等等情况,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出(因为用户进入该界面必然是为了更改信息)。具体实现这种效果如下:

[代码]java代码:

1      EditText  editText.setFocusable(true);
2         editText.setFocusableInTouchMode(true);
3         editText.requestFocus();
4 InputMethodManager inputManager =
5                     (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
6                 inputManager.showSoftInput(editText, 0);

首先要对指定的输入框请求焦点。然后调用输入管理器弹出软键盘。

警告:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能由于界面为加载完全而无法弹出软键盘。此时应该适当的延迟弹出软键盘如998毫秒(保证界面的数据加载完成)。实例代码如下:

[代码]java代码:

 1 Timer timer = new Timer();
 2      timer.schedule(new TimerTask()
 3      {
 4
 5          public void run()
 6          {
 7              InputMethodManager inputManager =
 8                  (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
 9              inputManager.showSoftInput(editText, 0);
10          }
11
12      },
13          998);
时间: 2024-08-01 22:45:05

[转]android自动弹出软键盘(输入键盘)的相关文章

android自动弹出软键盘(输入键盘)

searchEditView.setFocusable(true); searchEditView.setFocusableInTouchMode(true); searchEditView.requestFocus(); Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { InputMethodManager inputManager = (InputMethodManager) sea

android开发中防止刚进入activity时edittext获取焦点,自动弹出软键盘

刚进入activity的时候,如果布局组件有edittext的话,往往edittext会获取焦点,自动弹出软键盘,影响整个界面的视觉效果.解决方法如下: 可以在edittext的父布局结构中(例如LinearLayout,RelativeLayout等)添加 android:focusable="true" android:focusableInTouchMode="true" 这个两个属性,就可以了.

Android不自动弹出软键盘和不让软键盘弹出挤压图形

软键盘弹出挤压图形很变态,设计好的模型会在软件盘弹出数据变得丑陋无比,为了保持不变,只需要在 Manifest.xml 相应的 Activity 里添加 android:windowSoftInputMode="adjustPan|stateHidden" 为了不让软件盘弹出,如果是Activity的话,可以直接添加如下代码解决自动弹出软键盘的问题 <activity android:name="com.guandehao.baobiao.B_KuCunBaoBiao&

Android PopupWindow中EditText获取焦点自动弹出软键盘

公司的项目中要求在点击搜索的时候弹出一个搜索框,搜索框中有一个EditText,用于数据搜索关键字,要求在弹出PopupWindow的时候自动弹出软键盘,原以为只要写上着两行代码可以搞的问题: 1 InputMethodManager inputMethodManager=(InputMethodManager) et_search_key.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 2 inputMethodMana

Android进入页面开始就自动弹出软键盘

EditText edittext = (EditText)findViewById(R.id.edittext);   edittext.setFocusable(true);   edittext.setFocusableInTouchMode(true);   edittext.requestFocus();   Timer timer = new Timer();   timer.schedule(new TimerTask() {                      public

Activity“ 阻止自动弹出软键盘”的方法 -尤其是对于Tab页下的!

我的activity是Tab页签下的~! 所以应把代码加在继承于TabActivity的那个activity中!!而不是由点击Tab页启动的那个activity <activity android:name=".MyTabActivity" android:label="@string/app_name" android:windowSoftInputMode="stateHidden" /> 又遇到Tab页中有的Activity需要

android避免弹出软键盘遮盖listview

做开发的时候,我们常常把listview放中间,然后底部放置一个edittext控件,这样导致editext控件获得焦点的时候,输入法弹出,Edittext控件上移,挡住了listview的部分数据,这样不太美观.所以,我们需要让listview也跟着上移,所以需要: 设置listview属性时候加上这句就ok了android:transcriptMode="normal" 另外的一种做法是: 获得布局view, rootView.getViewTreeObserver().addOn

设置不自动弹出软键盘的最简洁解决方案

在Activity的清单文件中,添加属性 android:windowSoftInputMode="adjustUnspecified|stateHidden" 如下 <activity android:name=".PulishSellInfoActivity" android:screenOrientation="portrait" android:windowSoftInputMode="adjustUnspecified|

Dialog中EditText获取焦点,并且自动弹出软键盘

//解决dilaog中EditText无法弹出输入的问题 dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); //弹出对话框后直接弹出键盘 et_newReason.setFocusableInTouchMode(true); et_newReason.requestFocus(); CmzStaffApplication.handler.postDelayed(new Runnable