为EditText的提示文本设置多行

14

我知道我可以更改EditText文本的行数,但是我能否也更改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)。

发布一些代码和所需结果与当前结果的图像。 - M S Gadag
你有收到任何错误信息吗? - M S Gadag
1
不,没有错误。但是只显示了“关键字、位置……”这些词语。 我想要的是(在上面的代码结尾处): “关键字、位置、----------新行------------ 最高价格(例如1K、1M)”。 - Derekyy
5个回答

15

除了这个方法,别的什么都没用:

 <EditText
         android:id="@+id/text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         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>

这应该是标记答案..我还不知道原因,但它正在工作。 - Libin Thomas

9
请在提示中使用换行符 \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"

希望它能够正常工作。


请确保将EditText的高度设置为wrap_content...并且请贴出您的XML代码。 - M S Gadag

7

难以置信但却是事实:通过编程设置长文本而不是在XML中设置,解决了问题。

<TextInputEditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine|textCapSentences|textAutoCorrect"

通过编程设置文本:

mEditTextRemark.setHint(R.string...);

0

试试这个:

String.xml

<string name="hint">Hint first line \n Hint second line \n Hint third line</string>

Layout.xml

 <EditText
         android:id="@+id/emailText"   
         android:layout_height="fill_parent"
         android:layout_width="fill_parent"
         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);
- Derekyy

-1
在你的XML文件中,将以下两行代码设置到你的EditText中:
android:inputType="textMultiLine"
android:lines="3"

因此,在预览中显示了3个多行框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接