如何在安卓中以编程方式设置编辑文本提示?

52

有没有一种方法可以使用Java设置Android EditText中显示的文本提示?我希望我的应用程序能够在不同的时间内在EditText中显示不同的内容。


2
在提出这种问题之前,请参考Android开发者网站。EditText链接在此处:http://developer.android.com/reference/android/widget/EditText.html - Finder
11个回答

86

你尝试过使用setHint吗?

myTextView.setHint("My conditional hint");

希望能对你有所帮助。


46

如果您正在使用简单的Editext而没有TextInputLayout

EditText etUsername;
etUsername = (EditText) findViewById(R.id.etUsername);
etUsername.setHint("Your Hint");
如果您在TextInputLayout中使用Editext,则需要更改TextInputLayout的属性而不是Edittext的属性。
TextInputLayout layoutUser;
layoutUser = (TextInputLayout) findViewById(R.id.inputLayoutUname);
layoutUser.setHint(getResources().getString(R.string.hintFaculty));

17

9
((TextView) findViewById(R.id.yourEditTextId)).setHint("hint text");

5

Kotlin

editText.hint = "Your hint"

3
如果您正在使用ActionBarSherlock SearchView,这是动态设置字符串的最佳方法。
   AutoCompleteTextView searchTextView =
                    (AutoCompleteTextView) mSearchView.findViewById(R.id.abs__search_src_text);

searchTextView.setHint(getResources().getString(R.string.search));

1
在 Kotlin 中
val layoutMobile: TextInputLayout = findViewById<View>(R.id.inputLayout_MobileNumber) as TextInputLayout
        layoutMobile.hint = "Your Hint"

0

对于editText.hint,您必须从activity_main.xml中删除编辑文本的名称,然后在MainActivity的java文件或activity_main.xml中设置,因为文本优先于提示。


0
 <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>

-1

在Java中

yourEditTex.setText("");//First
yourEditTex.hit("Your text");

这适用于所有情况。


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