2013-03-23 43 views
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> 

回答

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); 
    } 
0

最好的解決辦法是:(manifest文件)

<activity android:name=".MainActivity" 

    android:windowSoftInputMode="stateHidden" /> 
+1

對不起,這是行不通的。你能幫我看看我的清單嗎? – edisonthk 2013-03-23 10:07:38

+0

將它張貼在這裏,以便我們可以檢查它。 – Skynet 2013-03-23 10:19:30

+0

這可能會證明對你有幫助http://stackoverflow.com/questions/10611833/how-to-disable-keypad-popup-when-on-edittext/13908440#13908440 – Skynet 2013-03-23 10:19:58

0

我用這個和它始終工作:

<activity 
     android:name="MyProfileActivity" 
     android:windowSoftInputMode="stateHidden|adjustPan" />