[英]How to make an EditText uneditable/disabled
我有一個 EditText,用戶不應該在其中提供輸入。 所以我嘗試禁用它,通過
edittext.setEnabled(false);
edittext.setClickable(false);
但是,當我從其他一些 EditText 按下 softKeyboard 中的“下一步”按鈕時,它仍會將我引導到不應編輯的那個,並且我可以在其中插入值。 如何避免這種情況?
這很好用; 只需將edittext的焦點屬性設置為“false”即可。
<EditText
android:id="@+id/EditTextInput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:gravity="right"
android:cursorVisible="true">
</EditText>
不要把自己搞砸了。 只是簡單的工作使用低於一個
首先,保存 EditText 的關鍵監聽器:
KeyListener mKeyListener = yourTextView.getKeyListener();
yourTextView.setKeyListener(null);
然后,如果您想再次啟用編輯,請將保存的偵聽器分配回去:
yourTextView.setKeyListener(mKeyListener);
yourEditText.setKeyListener(null);
無需移除焦點並將可點擊設置為 false。
只需刪除關鍵偵聽器,您就完成了。
還使用 Android 6.0 進行了測試
好的。 我做了這樣的事情並得到了結果。
edittext.setEnabled(false);
edittext.setGravity(Gravity.CENTER);
edittext.setClickable(false);
edittext.setFocusable(false);
edittext.setFilters(new InputFilter[] { new textChange() });
edittext.setInputType(0);
class textChange implements InputFilter {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
return dest.subSequence(dstart, dend);
}
}
嘗試添加
edittext.setFocusable(false); edittest.setFocusableInTouchMode(false);
android:focusable="false"
android:longClickable="false"
將這兩個字段添加到您的 EditText 將禁用焦點,並且還會禁用將數據復制粘貼到您的 EditText 字段中。
看看這個
editText.setEnabled(false);
和editText.setFocusable(false);
將實現。
在您的 EditText Xml 代碼中。 粘貼到下一行。
android:focusable="false"
android:focusable="false"
為我工作。
使用 imeOptions 屬性將 softKeyboard 中的按鈕更改為完成
android:imeOptions="actionDone"
將它添加到 EditText 之前要禁用的那個。
它可能對某人有幫助。 我找到了一種實現:
@Override
public boolean onTouch(View v, MotionEvent event) {
//for edit text
return locked;
}
locked
的地方是鎖定 state。
當然,我必須使用editText.setOnTouchListener(<listener>);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.