我有一个editText:
<EditText
android:textCursorDrawable="@drawable/edittext_cursor"
android:textColorHint="@color/colorBlackHintText"
android:fontFamily="@string/font"
android:inputType="text"
android:id="@+id/idEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:hint="Type something"
android:paddingBottom="@dimen/fab_margin"
android:paddingRight="@dimen/fab_margin"
android:paddingTop="@dimen/fab_margin"
android:textSize="@dimen/text_size" />
当有人打字时,它会调用该函数:
EditText idEditText = (EditText) findViewById(R.id.idEditText);
idEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
ChooseText(); // here
}
@Override
public void afterTextChanged(Editable s) {
}
});
ChooseText()函数将显示列表,然后人们可以选择其中一个。
这意味着,当有人试图更改editText时,editText的文本无法更改,列表将显示,此文本将在以后更改,人们无法自行更改此文本。
最重要的是人们看到editText中的文字没有改变。 任何帮助。谢谢!
答案 0 :(得分:1)
从你想要做的事情来看,它似乎更像是一个Spinner功能。您希望用户从可能的文本(值)的固定列表中进行选择。
http://developer.android.com/guide/topics/ui/controls/spinner.html
更新: Checkout AutoCompleteTextView,可能与您尝试执行的操作相匹配。
对于你想要的功能,我想最好有EditText + Spinner。还有一个按钮可以在两者之间进行选择。 使布局使EditText和Spinner相互叠加。默认情况下,Spinner setVisibility为VISIBLE,EditText为GONE。 因此,通常用户从微调器中的项目列表中进行选择。当用户处于没有任何微调器列表项可以并且需要编辑文本的情况下,他/她可以按下您提供的按钮。 在OnClick按钮上,您可以创建Spinner setVisibility GONE和EditText setVisibility VISIBLE。所以现在用户有一个EditText来输入自定义文本。
答案 1 :(得分:1)
尝试在afterTextChanged()方法
上调用ChooseText()函数@Override
public void afterTextChanged(Editable s) {
ChooseText();
}
<EditText
android:inputType="text"
android:id="@+id/idEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something"/>
试试这个
@Override
public void afterTextChanged(Editable s) {
s.clear();
}
Clicklistener
idEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ChooseText();
}
});
答案 2 :(得分:0)
AutoCompleteTextView怎么样?这是一个可编辑的文本视图,可在用户键入时自动显示完成建议。建议列表显示在下拉菜单中,用户可以从中选择一个项目来替换编辑框的内容。
查看更多示例here