1

最初のタブで EditText を取得しました。もちろん、EditText をタッチすると、ソフト キーボードが表示されます。しかし、2 番目のタブにアクセスすると、2 番目のタブ アクティビティが表示され、最初のタブにソフト キーボードが表示されたままになり、2 番目のタブ アクティビティに EditText がなくても消えません。

2 番目のタブにアクセスしたときにソフトキーボードが表示されないようにしたい。

この問題を解決するにはどうすればよいですか?

これが私のマニフェストファイルです

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

私はそれに取り組む方法を考え出し、試してみましたが、うまくいきます。

2番目のアクティビティにアクセスしたいので、確かにライフアクティビティの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 に答える