繁体   English   中英

如何在Android中打开/关闭Keyborad上显示吐司

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM