[英]how to display Toast on Keyborad on / off in android
以下是我的代码,我试图在设备上打开和关闭键盘上显示Toast消息,我的代码正在运行,但是我无法显示Toast消息,请告诉我问题出在哪里。
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>
下面是清单文件代码,因此请告诉我哪里做错了,启用和禁用键盘时我无法显示Toast。
加上这个
<application android:configChanges="keyboard|keyboardHidden" ... />
在manifest.xml文件中
编辑:从这里这里我想通了,这种解决方案将不会为软键盘工作:(
如果要隐藏键盘,可以在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/
希望这可以帮助 :)
您正在检查硬键盘状态,这是实际的物理键盘(如果存在)的状态。 您应该检查任何键盘状态 :
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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.