1

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

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

我该如何解决这个问题?

这是我的清单文件

<?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>
4

3 回答 3

1

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

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

这就是 onPause 方法的样子

@Override
protected void onPause(){
    super.onPause();

    hideKeyboard(this,editText);

}

这是我的 hideKeyboard 方法看起来像

public void hideKeyboard(Context context, EditText text){
        InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(text.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN);
    }
于 2013-03-23T12:34:33.867 回答
0

最好的解决方案是:(在清单文件中)

<activity android:name=".MainActivity" 

    android:windowSoftInputMode="stateHidden" />
于 2013-03-23T09:53:46.170 回答
0

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

<activity
        android:name="MyProfileActivity"
        android:windowSoftInputMode="stateHidden|adjustPan" />
于 2013-03-23T10:57:54.117 回答