edittext十字(X)按钮在空时不会消失

时间:2014-02-10 00:14:20

标签: android android-edittext android-button

我在edittext内实施了一个十字按钮。 edittext实际上是一个搜索栏。此十字按钮将清除用户输入的所有文本。

我希望当搜索栏为空时,十字按钮会消失,而当搜索栏没有时,我希望它是可见的。 当我输入某些内容时,它会变得可见但是当我清除所有内容时,它仍然可见。 可能是什么问题?

这是我的代码: 的 XML

<EditText
        android:layout_width="wrap_content"
        android:id="@+id/searchbar"
        android:layout_height="40dp"
        android:textColor="#bfc2d1"
        android:singleLine="true"
        android:drawableLeft="@drawable/search"
        android:drawableRight="@drawable/deletebackground_nooverlay"
        android:padding="5dp"
        android:background="@drawable/search_bar"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:imeOptions="flagNoExtractUi"
        android:hint="Search the elements"
        android:layout_alignBottom="@+id/backdrawbtn"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/backdrawbtn"
        android:layout_alignParentTop="true"
        android:layout_marginTop="5dp"/>

    <ImageView
        android:id="@+id/clear_button"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginTop="7dp"
        android:layout_marginRight="5dp"
        android:visibility="invisible"
        android:background="@drawable/ic_cancel"
        android:layout_alignTop="@+id/searchbar"
        android:layout_alignRight="@+id/searchbar" />

爪哇

 searchBar.addTextChangedListener(new TextWatcher() {
 //I am using textwatcher as this editttext (searchBar) has a search function as will
        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            String searchedquery = cs.toString().replaceAll(" ","");
            CurlActivity.this.adapter.getFilter().filter(searchedquery);
            if(!searchBar.getText().equals(""))
            {
                clearbutton.setVisibility(View.VISIBLE);
            }
            if(searchBar.getText().equals(""))
            {
            clearbutton.setVisibility(View.INVISIBLE);
            }
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {

        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

0 个答案:

没有答案