您的位置:首页 > 其它

EditText监听内容

2015-11-03 15:58 267 查看
连学习带记录,在EditText中根据内容判断是否显示一个删除的叉叉图片。

功能通过自定义控件的方式可以实现,不过还有更简单的方法,算是偷懒的做法吧

那就是将EditText跟一个TextView或者一个ImageView写在同一个LinearLayout中,横向显示,然后根据内容来显示和隐藏叉叉图片。

下面贴代码

首先是布局

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/user_info_update_name_edit"
android:layout_width="match_parent"
android:layout_height="@dimen/dp45"
android:layout_weight="1"
android:background="@color/white"
android:textColorHint="@color/centerColor"
android:focusable="true"
android:text="王二"
android:gravity="center|left"/>
<TextView
android:id="@+id/cancel_update_name"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:background="@color/white"
android:visibility="gone"
android:paddingLeft="@dimen/tenDp"
android:paddingRight="@dimen/tenDp"
android:text="x"/>
</LinearLayout>


很简单的布局,下面贴功能代码:
//设置内容改变
user_info_update_name_edit.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) {
if(s.length() >0){
cancel_update_name.setVisibility(View.VISIBLE);
}else if(s.length() == 0){
cancel_update_name.setVisibility(View.GONE);
}
}

@Override
public void afterTextChanged(Editable s) {

}
});
//清空内容的点击事件
cancel_update_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user_info_update_name_edit.setText("");
}
});


核心代码就是这一点,EditText的监听需要一个TextWatcher类,重写三个方法来决定是在什么状态下进行监听。

以上,小菜鸟还差得远,还望多多指教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: