当我的应用程序启动时,我在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
答案 0 :(得分:1)
启用EditText
使用
_mytextBox.setEnabled(true);
以及禁用EditText
使用
_mytextBox.setEnabled(false);
如果您不想使用上述内容,请在edittext上尝试隐藏/显示键盘
// Show soft keyboard for the user to enter the value.
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
// Hide soft keyboard.
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
答案 1 :(得分:1)
要重置setTextIsSelectable,您只需要将一组EditText属性恢复为原始状态...
这是我开发用于我的应用程序的Utils方法..
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
dataTable.Rows[gridResultados.SelectedIndex].SetField(4, 1);
}
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
dataTable.Rows[gridResultados.SelectedIndex].SetField(4, 2);
}
欢迎你...
答案 2 :(得分:0)
在xml
中初步EditText
android:enabled="false"
关于商品onOptionsItemSelected
,请修改文字选项,使其成为setEnabled(true)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.edit_text_option_id:
editText.setEnabled(true);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 3 :(得分:0)
您是否尝试过requestFocus来编辑文本?