在我的活动代码中,我有这些行
EditText editText=(EditText)findViewById(R.id.editText);
editText.setTextIsSelectable(false);
我想要实现的是EditText
不可编辑且不可选择的。
在上一行我尝试实现第二个选项,但它不起作用。 EditText
仍然可以选择。
为了使EditText
不可编辑,我没有找到任何方法,例如setEditable
或类似方法。我读到了关于设置InputType
的内容,但我没有成功。
然而,不可选择的约束可能会被削弱。我的主要目标是EditText
内的文字不会因任何原因而改变。由于这些原因,EditRext
可以选择,但我希望没有用户可以剪切文本。
我不需要XML,只需要Java代码。所有这些都需要以编程方式进行。
答案 0 :(得分:3)
对不起家伙,至少对我的设置(Sdk Version 25 with AppCompatActivity)
editText.setFocusable(false);
仍然会让我按下虚拟键盘的返回按钮,为文本添加线条。如果你添加
editText.setEnabled(false);
此行为停止,但文本显示为灰色。
因此,我认为以下是更好的解决方案:
editText.setInputType(0);
答案 1 :(得分:2)
这很好用;只需将edittext的focusable属性设置为“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>
答案 2 :(得分:1)
我将实现以下代码:
editText.setFocusable(false);
editText.setClickable(false);
editText.setEnabled(false);
哪个应阻止与EditText
进行互动。自View
扩展EditText
后,请阅读此处有关ForeignKeyField
课程的详情:
https://developer.android.com/reference/android/view/View.html#setFocusable(boolean)