为 EditText 的 HINT 设置多行
Posted
技术标签:
【中文标题】为 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 的 HINT 设置多行的主要内容,如果未能解决你的问题,请参考以下文章
设置不同的android:inputTye属性导致 EditText hint的字体发生改变
自定义ANDROID中EDITTEXT中的HINT文本的大小
android:hint 在 styles.xml 中声明,但仍有警告“您应该为 EditText 提供 `android:hint`”