make editText可以输入,但Android中的文字不会改变?

时间:2015-12-16 03:40:58

标签: android android-edittext

我有一个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中的文字没有改变。 任何帮助。谢谢!

3 个答案:

答案 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