當編輯文本獲得焦點或者用戶點擊編輯文本時,我需要防止軟鍵盤出現,因爲用戶必須使用條形碼掃描器作爲輸入法。但我需要的是當用戶點擊/點擊特定按鈕時打開鍵盤。防止SoftKeyboard在EditText上打開焦點
我試過focusableInTouchMode屬性,它可以很好地防止softkeyboard彈出,但它不會讓編輯文本獲得焦點。
有關如何實現此目的的任何提示?
當編輯文本獲得焦點或者用戶點擊編輯文本時,我需要防止軟鍵盤出現,因爲用戶必須使用條形碼掃描器作爲輸入法。但我需要的是當用戶點擊/點擊特定按鈕時打開鍵盤。防止SoftKeyboard在EditText上打開焦點
我試過focusableInTouchMode屬性,它可以很好地防止softkeyboard彈出,但它不會讓編輯文本獲得焦點。
有關如何實現此目的的任何提示?
您可以使用此代碼
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()
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();
}
}
});
試試這個....就返回null或任何東西onclicklistner ..
Njoy .. :) 而m使用它,所以不要告訴我它不工作..大聲笑..
我有一個條件,如果用戶點擊edittext然後它會彈出DatePicker對話框及其工作。 所以njoy花花公子......:)
真棒...工作完美 –
我相信這上面的行將執行與puttin ** android:windowSoftInputMode =「stateAlwaysHidden」**清單文件中的相同,但我添加了您剛剛在onCreate函數中給出的行,但是每當我點擊編輯文本時它仍然打開軟鍵盤。 –