簡體   English   中英

在Android 4中鍵入EditText時隱藏軟鍵盤

[英]Hiding the soft keyboard when typing in EditText in Android 4

我正在為Android編寫計算器,用於輸入表達式我使用EditText。 當我創建我的按鈕 - 我不需要軟件鍵盤,但我想更改光標位置,文本選擇,復制,粘貼。 總而言之 - 一切都是這樣,只顯示虛擬鍵盤。 在2.3版中我可以寫:

EditText.setInputType (InputType.TYPE_NULL);

它工作得很好。 在光標的版本4中沒有顯示,菜單不起作用等。嘗試了很多方法 - 你不能移動光標,鍵盤顯示,它從來沒有真正解釋過。

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); //cursor not showing
------------------------------------------------------------------------
getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); //not working

我想在Panecal,MobiCalc Free,科學計算器中制作它。 對此我會很樂意提出任何有用的建議。 PS抱歉我的英文。

從下面發布的鏈接中,這是一個使用Edittext觸摸的示例

editText_input_field.setOnTouchListener(otl);

private OnTouchListener otl = new OnTouchListener() {
    public boolean onTouch (View v, MotionEvent event) {
            return true; // the listener has consumed the event
    }
 };

這是同一網站的另一個例子。 這聲稱工作,但似乎是一個壞主意,因為你的EditBox是NULL它將不再是一個編輯器:

MyEditor.setOnTouchListener(new OnTouchListener(){ 
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int inType = MyEditor.getInputType(); // backup the input type
        MyEditor.setInputType(InputType.TYPE_NULL); // disable soft input
        MyEditor.onTouchEvent(event); // call native handler
        MyEditor.setInputType(inType); // restore input type
        return true; // consume touch even
   }
});

希望這能指出你正確的方向

上面的答案取自 - 如何在Android中單擊edittext時阻止虛擬鍵盤?

這可能也適用於getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

對此的確切解決方案是將EditText中的標志textIsSelectable設置為true 這將保留光標,您將能夠使用基本的選擇/復制/剪切/粘貼等功能。您可以在xml布局中設置它,如下所示:

您可以像下面這樣以編程方式設置它:

EditText edit_text = (EditText) findViewById(R.id.editText);
edit_text.setTextIsSelectable(true);

或者在XML布局中:

<EditText
    ...
    android:textIsSelectable="true"
/>

對於使用API​​ 10及更低版本的任何人,此處提供了hack: https//stackoverflow.com/a/20173020/7550472

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM