2013-03-16 128 views
3

後,我用下面的代碼來說明鍵盤按HOME鍵鍵盤不能隱藏

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 
     InputMethodManager.HIDE_IMPLICIT_ONLY); 

我用下面的代碼隱藏鍵盤getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

隱藏鍵盤,並

也試過這個

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

但按下home鍵後。應用程序關閉,但鍵盤在屏幕上保持不變。

請指導我。我究竟做錯了什麼?

我已經把我的隱藏代碼。 我把皮草放在onDestroy()onBackPressed()onOptionsItemSelected(MenuItem item)對不起對我的代碼格式。

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mylayout); 

    textTv=(EditText)findViewById(R.id.textview1); 
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 
    InputMethodManager.HIDE_IMPLICIT_ONLY); 

    if(getIntent().getExtras()!=null) 
    { 
     Bundle extra=getIntent().getExtras(); 
     if(extra!=null) 
     { 
      // code 
     } 
    } 
} 

public void onBackPressed() { 
    // TODO Auto-generated method stub 
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(noteTv.getWindowToken(), 0); 
    } 

public boolean onOptionsItemSelected(MenuItem item) { 
    // TODO Auto-generated method stub 

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

    switch (item.getItemId()) { 
    case R.id.menu1: 
    //code 
    break; 
    case R.id.menu2: 
    //code 
    break; 

}

+0

您已使用所有可能的情況下,每個人都將工作,如果你的意思是有可能會在你的代碼中的一些問題,它不工作,所以向我們展示隱藏鍵盤的代碼。 – Pragnani 2013-03-16 09:01:37

+0

我已經在'onCreate()'方法中顯示代碼並將代碼隱藏到'onBackPressed()'中正常工作。但是當我按下home鍵時顯示鍵盤沒有隱藏。 @Pragnani – PSK 2013-03-16 09:05:40

+0

我已經把隱藏代碼放在我不隱藏鍵盤的地方。 @Pragnani – PSK 2013-03-16 09:13:16

回答

7

嘗試

@Override 
protected void onPause() { 
    final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(noteTv.getWindowToken(), 0); 
    super.onPause(); 
} 
+0

爲我工作.. @Doctoror Drive – PSK 2013-03-16 10:27:54

+0

不起作用爲了我 :/ – 2014-10-14 09:40:49