簡體   English   中英

防止在EditText Focus上打開軟鍵盤

[英]Prevent Softkeyboard from opening on EditText Focus

我需要防止在“編輯文本”獲得焦點或用戶點擊編輯文本時顯示軟鍵盤,因為用戶必須使用條形碼掃描儀作為輸入方法。 但是我需要在用戶單擊/輕擊特定按鈕時打開鍵盤。

我曾嘗試focusableInTouchMode財產,它在防止彈出的softkeyboard不錯,但它不會讓編輯文本獲取焦點。

關於如何實現這一點的任何提示?

myEditText.setInputType(InputType.TYPE_NULL);

myEditText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // showMyDialog();
    }
});

myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            // showMyDialog();
        }
    }
});

嘗試這個。

Njoy .. :)而且我正在使用它,所以不要告訴我它不起作用..大聲笑..

我有一個條件,如果用戶單擊edittext,它將彈出DatePicker對話框並開始工作。 所以njoy dude ...:;)

您可以使用此代碼隱藏鍵盤

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

您應該使用stateAlwaysHidded。 如在第一個答案中那樣在運行時中,或者直接在您的項目清單中:

android:windowSoftInputMode="stateAlwaysHidden"

這樣可以防止在onCreate / onResume期間出現鍵盤。

為防止單擊EditText后出現鍵盤,您可以在EditText頂部放置一些帶有透明背景的空白視圖:

<View
    android:id="@+id/view"
    android:layout_width="editTextWidth"
    android:layout_height="editTextWidth"
    android:background="@android:color/transparent"
    android:clickable="true"/>

這里的關鍵屬性是android:clickable="true" 這將阻止您將注意力集中在單擊上(實際上用戶將單擊此空白視圖,而不是EditText)。

然后,當用戶單擊您提到的特殊按鈕時,只需刪除此空白視圖並調用editText.requestFocus()

暫無
暫無

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

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