[英]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.