2013-10-23 166 views
0

我想在隱藏鍵盤後點擊EditText在Android中我嘗試了下面的代碼,但它不工作。在android中隱藏軟鍵盤

mPassword.setInputType(InputType.TYPE_CLASS_NUMBER); 
    mPassword.requestFocus(); 
    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    mgr.showSoftInput(mPassword, InputMethodManager.RESULT_HIDDEN); 

我還在活動清單中給出了android:windowSoftInputMode="stateHidden"。 仍然我越來越鍵盤。請告訴我如何隱藏軟鍵盤?

+0

你爲什麼要在edittext焦點上隱藏鍵盤? –

+0

我想用我自己的鍵盤 –

+0

你試過我的回答嗎?請讓我知道它是否對你有所幫助。 – Saran

回答

1

您可以使用下面的代碼隱藏軟鍵盤

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(mPassword.getWindowToken(), 0); 

此外,

如果你想在活動開始時隱藏,然後編輯您的manifest文件

<activity android:name="com.your.package.ActivityName" 
android:windowSoftInputMode="stateHidden" /> 
+0

它沒有waorking.still後點擊我越來越鍵盤。 InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); \t \t imm.hideSoftInputFromWindow(mPassword.getApplicationWindowToken(),0); –

+0

編輯,檢查它 –

+0

更新後也不能正常工作 –

0

在清單文件中使用以下代碼。

<activity 
    android:name="YourActivity" 
    android:configChanges="keyboardHidden" 
    android:windowSoftInputMode="stateHidden"/> 
+0

我試過這個。不工作.. –

0

嘗試這樣,

your_edittext.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       InputMethodManager m = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       if (m != null) { 
        m.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY); 
        your_edittext.clearFocus(); 
       } 
      } 
     }); 
+0

不工作.... –

0

這裏的,這將隱藏鍵盤從任何地方解決方案。

1st在您選擇的活動中創建狀態的偵聽器和將執行關閉的方法(基於打開狀態)。

public class MainActivity extends SherlockFragmentActivity { 

    private boolean mKeyboardOpen = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    Log.d(TAG, "onCreate()"); 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    // add "keyboard open listener" 
    final View v = findViewById(R.id.pager); 
    v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
     int hRoot = v.getRootView().getHeight(); 
     int hView = v.getHeight(); 
     int heightDiff = hRoot - hView; 
     // if more than 150 pixels, its probably a keyboard... 
     mKeyboardOpen = heightDiff > 150; 
     Log.d(TAG, "hRoot=" + hRoot + ", hView=" + hView + ", mKeyboardOpen=" + mKeyboardOpen); 
     } 
    }); 
    } 


    public void closeSoftKeyboard() { 
    if (mKeyboardOpen) { 
     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 
    } 
    } 
} 

第二呼叫((MainActivity) getActivity()).closeSoftKeyboard();從任何地方,例如您的EditText的OnClickListener()

提示:我正在使用ViewPager根視圖(R.id.pager),但您應該用您的視圖根ID替換它。

+0

更新了我的答案。 – Saran