我正在尝试创建一个EditText,它在只读和写入模式之间切换其状态。 我的XML如下:
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textArea"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="4"
android:inputType="textMultiLine">
</EditText>
在我的代码中,我执行以下操作:
textArea = (EditText) convertView.findViewById(com.pravaa.mobile.R.id.textArea);
//isEditable decides if the EditText is editable or not
if(!isEditable){
textArea.setInputType(InputType.TYPE_NULL);
}
//the view is added to a linear layout.
addView(textArea);
我的问题是文本没有被包装。我错过了什么吗?请帮助我。我还附上了我的输出图像。
视图中设置的文字是“12345678901234567 90123456789012345678901234567890 Nationwide Campaign New”
答案 0 :(得分:8)
我想通过调用这个......
textArea.setInputType(InputType.TYPE_NULL);
覆盖标志InputType.TYPE_TEXT_FLAG_MULTI_LINE。试着改为调用它......
textArea.setInputType(InputType.TYPE_NULL|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
答案 1 :(得分:4)
我能够通过删除
来解决这个问题 android:inputType="textMultiLine"
要实现我使用的不可编辑功能
setFocusable(false);
答案 2 :(得分:1)
此行将使文本成为多行并将文本换行
textArea.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
您可能还想调用 setLines(n)来设置textArea的高度。
答案 3 :(得分:1)
尝试替换:
editText.setInputType(InputType.TYPE_NULL);
使用:
editText.setRawInputType(InputType.TYPE_NULL);
答案 4 :(得分:0)
我想说,使用textArea.setInputType(InputType.TYPE_NULL);
,您可以从xml中删除textMultiLine
。
答案 5 :(得分:0)
设置textMultiLine是不够的。试试这个:
textArea.setHorizontallyScrolling(false);
textArea.setEllipsize(null);
textArea.setInputType(InputType.TYPE_NULL|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
答案 6 :(得分:0)
我的帮助是:
edtText.setInputType(InputType.TYPE_NULL);
edtText.setSingleLine(false);
似乎忽略了XML文件中的setSingleline属性。