下面是我的代码我试图在设备上打开和关闭键盘上显示吐司信息,我的代码正在运行,但我无法显示吐司信息,请告诉我问题在哪里。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
}
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.keyboard.MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
下面是清单文件代码,所以请告诉我哪里出错了我启用和禁用键盘时无法显示吐司。
答案 0 :(得分:0)
添加此
<application android:configChanges="keyboard|keyboardHidden" ... />
修改强> 从这里here我发现这个解决方案不适用于软键盘 :(
答案 1 :(得分:0)
如果您想隐藏键盘,可以在Android Manifest XML文件中使用它。
<activity
android:name=".MainActivity"
android:windowSoftInputMode="stateHidden"/>
如果您想在软键盘区域外隐藏键盘,可以在java类中使用它。
EditText myEditText = (EditText) findViewById(R.id.myEditText);
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
您可以尝试使用此链接来检测软键盘的开/关。 参考:http://www.phonesdevelopers.com/1758842/
希望这有助于:)
答案 2 :(得分:0)
您正在检查硬键盘状态,这是真实物理键盘的状态(如果存在)。您应该检查any keyboard state:
if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
else if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}