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

我的activity是Tab页签下的~!

所以应把代码加在继承于TabActivity的那个activity中!!而不是由点击Tab页启动的那个activity

<activity android:name=".MyTabActivity" android:label="@string/app_name"
android:windowSoftInputMode="stateHidden" />

又遇到Tab页中有的Activity需要弹出键盘,有的Activity需要隐藏掉的情况,

这次用的是在Activity中加代码的方法,先看下代码在结束原因吧!

public class xxxActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.input_camera_activity);

    }

    @Override
    protected void onResume() {
        super.onResume();
        HideKeyboard();//隐藏键盘
    }

    //隐藏键盘
    private void HideKeyboard() {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                InputMethodManager manager = ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE));
                manager.hideSoftInputFromWindow(
                        InputCameraActivity.this.getCurrentFocus().getWindowToken(),
                        InputMethodManager.HIDE_NOT_ALWAYS
                );
            }
        }, 10);
    }

}

这个xxxActivity 是Tab页中的一个Activity,它想要隐藏掉软键盘,

1.开启线程延时的原因是:如果在Create方法中就直接关闭软键盘会报错,意思是Activity窗口没有初始化完,不可以进行诸如此类的操作。于是延时一小会儿,再执行隐藏软键盘的代码,就可以了。注意,即使不是在Tab相关的Activity中,也是这样!!

2.写在Resume()中的原因是,Tab页切换时不是从Activity的OnCreate()方法重新执行,所以为保证每次切换到该Activity时都能隐藏掉软键盘,所以要在OnResume()中写。

时间: 2024-12-21 22:37:55

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

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自动弹出软键盘(输入键盘)

转自:http://www.devdiv.com/home.php?mod=space&uid=65729&do=blog&id=11847 很多应用中对于一个界面比如进入搜索界面或者修改信息等等情况,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出(因为用户进入该界面必然是为了更改信息).具体实现这种效果如下: [代码]java代码: 1 EditText editText.setFocusable(true); 2 editText.setFocusableInT

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

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

Android打开某个activity时自动弹出输入法键盘

最近在做一个可以让用户修改自己账户资料的activity,具体是打开后有一个EditText,然后用户可以在这里输入相关信息,但是做好后发现,进入这个activity时系统并没有自动弹出输入法键盘,于是上网搜索,发现一个很简单的方法,就是在manifest清单文件对应的activity配置中加入一句Android:windowSoftInputMode="stateVisible|adjustResize"就可以了: <!-- 修改用户资料 --> <activity

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进入页面开始就自动弹出软键盘

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

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

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

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