首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止软键盘出现在其他活动中

阻止软键盘出现在其他活动中
EN

Stack Overflow用户
提问于 2013-03-23 17:51:30
回答 3查看 902关注 0票数 1

我在我的第一个帐单上买了一个EditText。当然,当我触摸我的EditText时,会出现软键盘。但当我访问第二个选项卡时,这意味着第二个选项卡活动,软键盘仍然出现在我的第一个选项卡上,即使我的第二个选项卡活动上没有EditText,也不会消失。

我想防止在访问第二个选项卡时出现软键盘。

我该如何解决这个问题?

这是我的清单文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidaccountbook"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name="com.example.androidaccountbook.AccountTabActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden">
             <!--  screenOrientation prevent from rotation -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity android:name="com.example.androidaccountbook.accountMainThread"
             android:windowSoftInputMode="stateHidden" />

        <!-- activity for intent -->
        <activity android:name="com.example.androidaccountbook.TodayExpenseList"
            android:windowSoftInputMode="stateHidden" />        
        <activity android:name="com.example.androidaccountbook.settingThread" 
            android:windowSoftInputMode="stateHidden"/>
        <activity android:name="com.example.androidaccountbook.FailedConnectDatabase" 
            android:windowSoftInputMode="stateHidden"/>

    </application>

    <uses-permission android:name="android.permission.INTERNET"/>

</manifest>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-23 20:34:34

我想出了如何处理它,并尝试了它,它是有效的。

因为我要访问第二个活动,而且肯定会发生onPause方法。因此,我在我的onPause方法上编写了以下hideKeyboard方法。

下面是onPause方法的外观

代码语言:javascript
复制
@Override
protected void onPause(){
    super.onPause();

    hideKeyboard(this,editText);

}

这是我的hideKeyboard方法看起来像

代码语言:javascript
复制
public void hideKeyboard(Context context, EditText text){
        InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(text.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN);
    }
票数 1
EN

Stack Overflow用户

发布于 2013-03-23 17:53:46

最佳解决方案是:(在Manifest文件中)

代码语言:javascript
复制
<activity android:name=".MainActivity" 

    android:windowSoftInputMode="stateHidden" />
票数 0
EN

Stack Overflow用户

发布于 2013-03-23 18:57:54

我使用这个,它总是有效的:

代码语言:javascript
复制
<activity
        android:name="MyProfileActivity"
        android:windowSoftInputMode="stateHidden|adjustPan" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15585380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档