作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个普通的 EditText,我想在用户输入超过 15 个符号时将其设为两行。我现在的解决方案是 XML 中的 EditText:
<EditText
android:id="@+id/enter_text_field"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:hint="@string/create_title_hint"
android:inputType="textCapCharacters"
android:gravity="center"
android:maxLength="30"
android:textAllCaps="true"
android:singleLine="false"
android:lines="2"
android:background="@null"
android:textColor="@android:color/white"
android:textSize="@dimen/text_size"
/>
我有一个用于文本更改的监听器,它的 onTextChanged 方法如下所示:
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(!s.toString().contains("\n") && s.toString().length() > 14)
setText(s.toString()+"\n");
}
但它不起作用。实际上发生的是光标到达行的开头。正确输入超过15个符号后如何拆分?感谢您的想法。
最佳答案
我设法接近你正在寻找的东西:
<EditText
android:id="@+id/linkEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:ellipsize="end"
android:gravity="center"
android:hint="@string/create_title_hint"
android:freezesText="true"
android:imeOptions="actionNext"
android:inputType="textCapCharacters|textMultiLine"
android:lines="2"
android:background="@null"
android:maxLength="31"
android:nextFocusDown="@null"
android:selectAllOnFocus="true"
android:textColor="@android:color/black"
android:textSize="16sp" />
然后在代码上,我做了:
@Override
public void afterTextChanged(Editable s) {
if(s.length() == 15){
mEditText.setText(s.toString()+"\n");
mEditText.setSelection(s.length()+1);
}
}
这将使 EditText
跳到下一行,一旦它有 15 个字符并将光标移动到文本的末尾。
关于android - 超过 15 个符号后如何将 EditText 拆分为 2 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24792035/
我是一名优秀的程序员,十分优秀!