在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
当前回答
对于禁用编辑EditText,我认为我们可以使用可聚焦或启用但是
使用android:启用=…或editText.setEnabled(…) 它还将EditText中的文本颜色更改为灰色。 当点击它没有效果 使用android: focusable =…或者editText.setFocusableInTouchMode(true) 它不会改变EditText的文本颜色 当点击它时,它会突出显示EditText的底线大约几毫秒
输出
其他回答
使用EditText.setFocusable(false)禁用编辑 setfocusableintouchmode (true)启用编辑;
我使用谷歌新发布的材料设计库。在我的情况下,它工作时,我使用 android: focusable = " false " android: cursorVisible = " false "
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/to_time_input_layout"
app:endIconMode="custom"
app:endIconDrawable="@drawable/ic_clock"
app:endIconContentDescription="ToTime"
app:endIconTint="@color/colorAccent"
style="@style/OutlinedEditTextStyle"
android:hint="To Time">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/to_time_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:cursorVisible="false" />
</com.google.android.material.textfield.TextInputLayout>
这将使您的编辑文本被禁用。
editText.setEnabled(false);
通过使用这个
editText.setInputType(InputType.TYPE_NULL);
将使您的Edittext不显示您的软键盘,但如果它连接到物理键盘,它将允许您输入。
As android:editable="false"已弃用 在xml中
使用android:enabled="false",这很简单。为什么要使用更多的代码?
如果你想在java课上使用,你也可以通过编程的方式使用它
editText.setEnabled(false);
你可以使用android:focusable="false",但也需要禁用光标否则 复制/粘贴功能仍然可以工作。
因此,使用
android:focusable="false"
android:cursorVisible="false"