我希望EditText
的最大行数为2,最大长度为20.如果EditText
长度超过10,则应自动转到新行,以便用户“需要按Enter键。有人可以帮我解决这个问题吗?
答案 0 :(得分:20)
将此内容添加到您的EditText xml代码
机器人:的inputType =" textMultiLine"
这会在输入数据时自动将文字移动到下一行。
答案 1 :(得分:19)
它应该以最优雅的方式存在,但是这个解决方案可以帮助您作为实现您想要的线索。首先,您需要将EditText
值设置如下:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text|textMultiLine|textCapSentences"
android:maxLength="21"
android:gravity="left"
android:maxLines="2" />
您必须将maxLength
属性设置为21
,因为输入char (新行)将在edittext中占用一个字符,那么用户只能写19
个字符而不是20
然后,您应该使用带有TextWatcher
的{{1}}(如果用户删除了之前的字符,则使用此值),这应该如下所示:
boolean
注意: 但是,您应该小心使用此代码。实际上,用户仍然可以按下// init global boolean
private boolean isReached = false;
// in onCreate method
edittext.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// if edittext has 10chars & this is not called yet, add new line
if(textEd.getText().length() == 10 && !isReached) {
textEd.append("\n");
isReached = true;
}
// if edittext has less than 10chars & boolean has changed, reset
if(textEd.getText().length() < 10 && isReached) isReached = false;
}
});
,然后添加新行。也许这些答案可能会帮助您处理它并让用户“只在路上”:Prevent enter key on EditText but still show the text as multi-line
答案 2 :(得分:0)
对于这些行,请执行以下操作:
<EditText
android:inputType="textMultiLine" <!-- Multiline input -->
android:lines="2" <!-- Total Lines prior display -->
android:minLines="1" <!-- Minimum lines -->
android:gravity="top|left" <!-- Cursor Position -->
android:maxLines="2" <!-- Maximum Lines -->
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
您也可以使用此参数(不适用于Android&lt; = 3.0 ):
android:singleLine="false"
对于字符数,请执行以下操作:
EditText et= (EditText) findViewById(R.id.editText1);
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(20); //Filter to 20 characters
et.setFilters(filters);
或者,使用其他参数,
android:maxLength="20"
中的 xml
答案 3 :(得分:0)
使EditText显示2行。你可以这样写:
android:maxLength="20"
android:maxLines="2"
android:singleLine="false"
android:layout_width="Your Choice"
答案 4 :(得分:0)
textView.setText(“您的文本” +“ \ n” +“您的文本”);