我有个可以写入多行文本的EditText,现在想固定每行可输入的字符数,如何使用addTextChangedListener控制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有个可以写入多行文本的EditText,现在想固定每行可输入的字符数,如何使用addTextChangedListener控制相关的知识,希望对你有一定的参考价值。
editText = (EditText) findViewById(R.id.edit_text_out);
editText.addTextChangedListener(new TextWatcher()
@Override
public void afterTextChanged(Editable s)
// TODO 自动生成的方法存根
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
// TODO 自动生成的方法存根
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
// TODO 自动生成的方法存根
安卓多行文本框每行仅限制16个字符,多余该字符后 输出回车 换行
该怎么编写?
谢谢!
目前屏幕宽度足够容纳的字符数量高于我限制的字符数量,所以不会出现你提到的情况。
追答用户是可以在手机的系统设置里面改字体大小的,而且手机屏幕的宽度不一样,这个不靠谱啊。
如果你坚持这样,看看能不能把sp转换成dp(比如10sp=1dp),然后将EditText的宽度设置为对应的dp试试。
那样字体会变得很大,希望不改变字体大小的情况下使用addTextChangedListener 来实现。
例如下面:我通过手动控制达到这个效果的,每行的字符不能超过最右字符。
我的意思是你算出每个字符的宽度,然后将EditText设置成对应的宽度
为 EditText 的 HINT 设置多行
【中文标题】为 EditText 的 HINT 设置多行【英文标题】:Set multi-line for EditText's HINT 【发布时间】:2015-03-19 14:12:25 【问题描述】:我知道我可以更改 EditeText 的 Text 的行数,但我也可以更改 EditText 的提示吗?
我在网上找不到解决方案。
感谢您的帮助。
我的代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
inflater.inflate(R.menu.property_search, menu);
super.onCreateOptionsMenu(menu, inflater);
final MenuItem searchViewMenuItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchViewMenuItem.getActionView();
int searchSrcTextId = getResources().getIdentifier("android:id/search_src_text", null, null);
EditText searchEditText = (EditText) mSearchView.findViewById(searchSrcTextId);
searchEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
searchEditText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
searchEditText.setHint(getString(R.string.search_hint));
字符串.xml
<string name="search_hint">keyword, location, \nmax price (e.g. 1K, 1M)</string>
我想要的是:
关键字,位置,
最高价格(例如 1K、1M)
【问题讨论】:
发布一些想要的和当前结果的代码和图像.. 你有什么错误吗? 不,没有错误。但只显示单词'关键字,位置,......'。我想要的(在我上面代码的末尾):“关键字,位置,----------新行----- -------- 最高价格(例如 1K、1M)" 【参考方案1】:没有什么对我有用,但是:
<EditText
android:id="@+id/text"
android:layout_
android:layout_
android:inputType="textMultiLine|textLongMessage"
android:hint="\n"/>
说实话,我不明白为什么.. 但是在 xml 中包含“\n”作为提示就可以了!
现在您可以从 Java 代码中调用 setHint:
searchEditText.setHint(getString(R.string.search_hint));
如果您想允许文本根据房间自动拆分,请从 strings.xml 中删除 \n
<string name="search_hint">keyword, location, max price (e.g. 1K, 1M)</string>
【讨论】:
这应该是标记的答案..我仍然不知道原因,但它正在工作【参考方案2】:在提示中使用换行符 \n。
喜欢
android:hint="first line of hint \n second line of hint so on.."
在字符串中
<string name="urhint">first line of hint \n second line of hint so on..</string>
android:hint="@string/urhint"
希望它有效..
【讨论】:
确保您将编辑文本高度设置为 wrapcontent...n 请也发布您的 xml【参考方案3】:难以置信,但确实如此:以编程方式设置长文本而不是在 xml 中设置就可以了。
<TextInputEditText
android:layout_
android:layout_
android:inputType="textMultiLine|textCapSentences|textAutoCorrect"
以编程方式设置文本:
mEditTextRemark.setHint(R.string...);
【讨论】:
【参考方案4】:试试这个:
字符串.xml
<string name="hint">Hint first line \n Hint second line \n Hint third line</string>
布局.xml
<EditText
android:id="@+id/emailText"
android:layout_
android:layout_
android:background="@drawable/login_edittext_background"
android:imeOptions="actionNext"
android:inputType="textEmailAddress"
android:hint="@string/hint"/>
【讨论】:
不,它不起作用。是不是因为我改变了actionBar的searchView,限制在特定的高度?我通过以下方式动态设置这些变量: 1. searchEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT); 2. searchEditText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);【参考方案5】:在您的 xml 文件中的 edittext 中设置以下两行
android:inputType="textMultiLine"
android:lines="3"
所以在预览中显示了 3 个多行框
【讨论】:
以上是关于我有个可以写入多行文本的EditText,现在想固定每行可输入的字符数,如何使用addTextChangedListener控制的主要内容,如果未能解决你的问题,请参考以下文章
Android:BottomSheetDialog中的多行文本EditText
Android使用popWindow弹出一个窗口,这个窗口上有个EditText文本框,现在遇到一个问题