android enabled xml,android开发分享如何使EditText无法在Android中通过XML进行编辑?

使用这个简单的代码:

textView.setKeyListener(null);

有用。

编辑:稍后添加KeyListener ,请执行以下操作

1:将按键监听器设置为textView标签

textView.setTag(textView.getKeyListener()); textView.setKeyListener(null);

2:从标记中获取关键字侦听器并将其设置回textView

textView.setKeyListener((KeyListener) textView.getTag());

将此添加到您的EditText xml文件中:

它会做android:editable="false" 。 为我工作,希望它也能为你工作。

让你的Edittext是

EditText editText;

editText.setKeyListener(null);

将工作,但它只是不听密钥。

用户可以在edittext上看到一个光标。

你可以试试editText.setEnabled(false);

这意味着用户看不到光标。 简单地说它将成为TextView 。

禁用XML(一行):

android:focusable="false"

从Java重新启用,如果需要(也是一行):

editText.setFocusableInTouchMode(true);

正如在其他答案中提到的,你可以做一个setEnabled(false)但是因为你问如何通过XML来设置它,这里是如何做到这一点。

将以下属性添加到您的EditText :

android:enabled="false"

他们做了“可编辑”的弃用,但没有在inputType中提供相应的工作。

顺便说一句,inputType =“none”有什么作用? 据我所知,是否使用它并没有什么区别。

例如,默认的editText被认为是单行。 但是你必须select一个inputType作为单行。 如果您select“无”,它仍然是多行。

正如你所提到的android:editable已被弃用。 应该使用android:inputType =“none”来代替,但是由于bug( )

但是你可以通过使用focusable来达到同样的效果。

通过XML:

从代码:

((EditText) findViewById(R.id.LoginNameEditText)).setFocusable(false);

如果你想点击它,但不想编辑它,请尝试:

android:focusable="false"

如果你想在java代码中使用这一行来禁用它:

editText.setEnabled(false);

而这样做是为了:

editText.setEnabled(true);

我试图做到:

textView.setInputType( InputType.TYPE_NULL );

这应该工作,但对我来说没有。

我完成了这个代码:

textView.setKeyListener(new NumberKeyListener() { public int getInputType() { return InputType.TYPE_NULL; } protected char[] getAcceptedChars() { return new char[] {}; } });

这完美的作品。

并使用以下内容:

txtDate.setKeyListener(null);

只需使用android:enabled="false" 。 这也会给EditText外观,这将使它看起来不可编辑。

你可以使用android:editable="false"但是我真的build议你使用setEnabled(false)因为它提供了一个可视的线索给用户,该控件不能被编辑。 所有禁用的小部件都使用相同的视觉提示,一致性很好。

当我想要一个活动不专注于EditText,也不显示键盘单击时,这是我的工作。

将属性添加到主布局

android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"

然后EditText字段

android:focusable="false" android:focusableInTouchMode="false"

这里是一个例子:

我已经尝试了以下内容:

codeEditText.setInputType(InputType.TYPE_NULL); this.codeEditText.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { pickCode(); } } }); this.codeEditText.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { pickCode(); } });

但问题是,如果编辑文本是表单中的第一个,那么它将获得焦点,而启动新活动的pickCode()代码将立即被调用。 所以我修改了代码如下,它似乎工作得很好(除了我不能把重点放在文本编辑,但我不需要):

itemCodeEditText.setFocusable(false); this.itemCodeEditText.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { pickItem(); } });

最好的祝福,

评论欢迎,

约翰·戈奇

除了@mahe madi你也可以试试这个

editText.setEnabled(false); editor.setTextColor(Color.BLACK);

此方法将隐藏光标,失去焦点,更重要的是将文本颜色设置为像TextView一样的黑色。

而要恢复到editText,只需执行此操作即可获得EditText的所有属性。

editText.setEnabled(true);

希望能帮助到你 :)

如果我想编辑,我使用EditText.setFocusable(false)并再次设置为true。

android:editable被弃用,所以使用inputType来代替。

尝试这个 :

android:inputType="none"

这种方式做了我的工作,我可以select和复制到剪贴板,但我不能修改或粘贴。

android:enable="true" android:textIsSelectable="true" android:inputType="none"

这个组合为我工作:

android:longClickable="false" android:cursorVisible="false" android:focusableInTouchMode="false"

我遇到了同样的问题,但经过观察,我发现android:editable="false"只有在inputtypes( android:inputType="ANY_VALUE" ) 没有在Edittext中给出。

从EditText中删除inputType并使用editable = false,其工作正常。

尝试

.setInputType(InputType.TYPE_NULL);

试试这个代码。 它在我的项目中工作,所以它会在你的项目中工作。

android:editable="false"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值