2012-06-25 25 views
3

我已经动态创建了一个EditText对象,但我无法创建多行EditText。我试过这个:在android中创建多行编辑视图

EditText et1 = new EditText(this); 
et1.setHint("Enter Your Address"); 
et1.setSingleLine(false); 
et1.setHorizontalScrollBarEnabled(false); 
et1.setInputType(android.text.InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS); 
et1.setLines(7); 

谢谢。

回答

3

在代码中包含此:

et1.setMaxLines(maxlines); 

或者你也可以设置为编辑文本的具体高度。

+0

感谢您回复 –

+0

还是行不通。 –

+1

如果你注释掉这行代码,它工作正常:et1.setInputType(android.text.InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS); – AndroGeek

1

这是该行:

et1.setInputType(android.text.InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS); 

这就是问题所在。把它拿出来。

除非要设置最大行数,否则setMaxLines无关紧要。你也应该避免将高度设置为特定的东西。 WRAP_CONTENT效果很好。

即使将其更改为:

et1.setInputType(android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE); 

迫使其单行编辑,这似乎很奇怪。
这不起作用或者:

et1.setInputType(android.text.InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 

这实在是刻着刺激性。看起来像一个Android的bug ...

你也可能想要设置垂直滚动和重力,所以它可以上下滚动,并从左上角开始。

et1.setGravity(Gravity.TOP|Gravity.LEFT); 
et1.setVerticalScrollBarEnabled(true); 
3

如果你想要的文字换行到下一行,添加TYPE_CLASS_TEXT到MULTI_LINE标志:

textArea.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
+0

这就是我想要的 –

+0

不错,简单:) – Crowni

0

什么工作对我来说是:

et1.setSingleLine(false); 
et1.setHorizontalScrollBarEnabled(false); 
et1.setVerticalScrollBarEnabled(true); 
et1.setMinLines(minLines);  
相关问题