gpt4 book ai didi

android - 将 textIsSelectable 设置为 true 后,如何将 EditText 重置回可编辑状态?

转载 作者:行者123 更新时间:2023-11-29 21:31:06 28 4
gpt4 key购买 nike

当我的应用程序启动时,我在 EditText 中加载了一些用户无法编辑的文本,直到单击“菜单”并选择“编辑文本”。初始 xml 如下所示:

<EditText
android:id="@+id/myTextBox"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:cursorVisible="true"
android:gravity="top"
android:inputType="none"
android:textIsSelectable="true"
android:scrollbars="vertical"
android:maxLines="1"
/>

用户选择“编辑文本”后,如何使其再次可编辑?我尝试在代码中执行以下操作:

_mytextBox.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
_mytextBox.setTextIsSelectable(false);

但是键盘再也不会出现了..如果我从 xml 中删除 textIsSelectable 并使用 android:inputType="textMultiLine",它会像我想要的那样工作。

附加信息:抱歉忘了提,我不能使用禁用/启用方式,因为我希望用户能够选择里面的任何文本并进行“复制”。此外,禁用它会使文本变暗……这不是我想要的。谢谢!

我希望调用 _mytextBox.setTextIsSelectable(false);会将一切重置为正常,但它不会.. 似乎是一个错误?可能与此问题有关:https://code.google.com/p/android/issues/detail?id=27609

最佳答案

要重置 setTextIsSelectable,您只需将一组 EditText 属性恢复到其原始状态...

这是我开发用于我的应用程序的 Utils 方法..

public static void toggleSelectableState(EditText editText){
if(editText.isTextSelectable()){
editText.setTextIsSelectable(false);
editText.setMovementMethod(ArrowKeyMovementMethod.getInstance());
editText.setCursorVisible(true);
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.setClickable(true);
editText.setLongClickable(true);
}else{
editText.setTextIsSelectable(true);
editText.setCursorVisible(false);
}
}

不客气...

关于android - 将 textIsSelectable 设置为 true 后,如何将 EditText 重置回可编辑状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com