2014-03-30 144 views
1

我的方法是這樣的:如何保持軟鍵盤打開時後退按鈕按下

public boolean onKeyPreIme(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     EditText editText = (EditText) findViewById(R.id.editText1); 
     editText.requestFocus(); 
     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 
       InputMethodManager.HIDE_IMPLICIT_ONLY); 
     return false; 
    } 
    return super.dispatchKeyEvent(event); 
} 

但是這不是爲我工作,但後退鍵被按下如何保持軟鍵盤仍處於打開狀態?

回答

0

您可以通過重寫onKeyPreIme方法來處理返回鍵來專門化EditText小部件。

public class MyEditText extends EditText { 

    public MyEditText(Context context, AttributeSet attr) { 
     super(context, attr); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public boolean onKeyPreIme(int keyCode, KeyEvent event) { 
     boolean retVal = false; 

     if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 
      InputMethodManager manager = (InputMethodManager) this.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
      manager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
     } 
     return retVal; 
    } 
} 

然後在您的活動中使用這個專門的EditText小部件。我正在使用的片段佈局片段。

<com.example.MyEditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/editText" 
     android:inputType="text" /> 
+0

它一樣,沒有爲我工作,在第一次按鍵後,鍵盤仍然隱藏,當我再次按下它,鍵盤顯示和應用程序退出。 –

相關問題