键盘滑出时的任何Android事件

时间:2011-02-18 21:26:24

标签: android

当用户在带键盘的手机上滑出键盘时,我可以听到任何意图/事件吗?

谢谢。

3 个答案:

答案 0 :(得分:8)

在您的清单文件中

,将其添加到您的活动定义中: android:configChanges="keyboard|keyboardHidden"

并在您的Activity java文件中覆盖方法onConfigurationChanged

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
       //handle keyboard slide out event
    }
    else if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES)
        //handle keyboard slide in event
    }
}

当此活动中的键盘事件触发时,将调用此方法,您可以执行任何操作。

答案 1 :(得分:2)

您可以收听ACTION_CONFIGURATION_CHANGED广播。 @schwiz和@binnyb提供的解决方案存在一个重大缺陷 - 它们迫使您处理配置更改的所有实际工作。这可能是必要的,但您最好不要覆盖android:configChanges,并使用onSaveInstanceState()onRetainNonConfigurationInstance()来处理实际的配置更改。

答案 2 :(得分:1)

在您的活动覆盖onConfigurationChanged()

中<是>是
public void onConfigurationChanged(Configuration newConfig){
   if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){
       //slideout detected
   }
}