2011-12-22 65 views
0

此代碼用於在單擊按鈕上顯示和隱藏Android鍵盤。Android:鍵盤未顯示使用模擬器中的代碼

public void keyClickHandler(View v) { 
    EditText editText = (EditText) findViewById(R.id.KeyBoard); 
    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

    if (keyboard) { 
     mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0); 
     keyboard = false; 
    } else { 
     mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 
     keyboard = true; 
    } 

    Log.d("SET", "Focus"); 
} 

但它是not在模擬器工作

我被發現,它是在手機的工作,但在模擬器not

+0

你能告訴我,如果這段代碼駐留在一個Activity或Dialog類的基礎類中嗎?我在使用'AlertDialog'的類中顯示IME時遇到過問題。 – 2011-12-22 05:02:34

+0

基於活動的類.. – 2011-12-22 05:07:02

回答

1

我不知道你的代碼的其餘部分是如何,但你可以嘗試這樣的事:

public void onClick(View v) 
{ 
    EditText editText = (EditText) findViewById(R.id.KeyBoard); 
    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

    switch(v.getId()) 
    { 
     case R.id.yourButtonId: 
      if(keyboard) 
      { 
       mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0); 
       keyboard = false; 
      } 
      else 
      { 
       mgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
       keyboard = true; 
      } 

      Log.d("SET", "Focus"); 
      break; 
    } 
} 

對於這個工作,你必須實現與onClickListener和本身的onCreate類t你的按鈕是這樣的:

Button yourButton = (Button) findViewById(R.id.yourButtonId); 
yourButton.setOnClickListener(this); 
+0

我的代碼在手機中工作正常,但沒有在模擬器中 – 2011-12-22 06:39:14

+0

什麼不起作用?它只是在模擬器上不起作用的按鈕嗎? – user990230 2011-12-22 06:57:12

+0

通過按下該按鈕,我得到了真正的手機中顯示的鍵盤,但在模擬器中工作時,它不顯示鍵盤 – 2011-12-22 09:14:02

相關問題