`
寻梦者
  • 浏览: 635427 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

editview中监听值的变化 清空搜索栏的文字

 
阅读更多

需求:项目中的有关搜索的地方,加上清空文字的功能,目的是为了增加用户体验,使用户删除文本更加快捷

解决过程:开始的时候感觉这个东西不太好实现,主要就是布局的问题,可能是开始顾虑的太多了,再加上当时产品催的不太紧,而且这个功能也不是必须实现的。但是今天不一样了,这个是老大让加上的,说别的很多应用中都有这个功能,没办法那就加上呗,试着去使用了相对布局去实现,把一个删除按键放在编辑框的右上方,当文字的时候就把删除按键给显示出来,当编辑框为空的时候就把删除按键给隐藏掉。布局代码

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:paddingBottom="50dp"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
    <RelativeLayout android:id="@+id/top"
    	android:layout_width="fill_parent"
    	android:layout_alignParentTop="true"
    	android:paddingLeft="10dp"
    	android:paddingRight="10dp"
    	android:background="@drawable/top_background"
    	android:layout_height="wrap_content">
    	
        <Button android:id="@+id/btnSearch"
        	android:layout_width="wrap_content"
        	android:layout_height="wrap_content"
        	android:gravity="center"
        	android:layout_centerVertical="true"
        	android:layout_alignParentRight="true"
        	android:textSize="12sp"
        	android:textStyle="bold"
        	android:background="@drawable/search_btn_background"
        	android:text="搜索"/>
        
        <RelativeLayout android:id="@+id/rlSearchFrameDelete"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
        	android:layout_centerVertical="true"
			android:gravity="center_vertical"
            android:layout_toLeftOf="@id/btnSearch">
            
		    	<EditText android:id="@+id/etSearch"
		        	android:layout_width="fill_parent"
		        	android:layout_height="wrap_content"
					android:singleLine="true"
		        	android:background="@drawable/search_frame"
		        	android:layout_marginRight="10dp"
		        	android:paddingLeft="32dp"
		        	android:textSize="12sp"
		        	android:hint="请输入文字..."/>
		    	
		    	<ImageView android:id="@+id/ivDeleteText"
		    	    android:layout_width="wrap_content"
		    	    android:layout_height="wrap_content"
		    	    android:layout_alignParentRight="true"
		    	    android:src="@drawable/delete"
		    	    android:layout_centerInParent="true"
		    	    android:paddingRight="20dp"
		    	    android:visibility="gone"/>
            
        </RelativeLayout>
        
    	
    </RelativeLayout>
    
</RelativeLayout>

这代码是直接从项目那截取过来的,里面用到了一些小技巧,开发的时候用到的布局写法,其中以一种背景平铺,这个在以前的文章里讲述过。在主程序里主要是使用了EditText监听输入的功能,这个以前的文章也写过,这次在使用又复习了一遍。代码如下

 

 

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ivDeleteText = (ImageView) findViewById(R.id.ivDeleteText);
        etSearch = (EditText) findViewById(R.id.etSearch);
        
        ivDeleteText.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				etSearch.setText("");
			}
		});
        
        etSearch.addTextChangedListener(new TextWatcher() {
			
			public void onTextChanged(CharSequence s, int start, int before, int count) {
				// TODO Auto-generated method stub
				
			}
			
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub
				
			}
			
			public void afterTextChanged(Editable s) {
				if (s.length() == 0) {
					ivDeleteText.setVisibility(View.GONE);
				} else {
					ivDeleteText.setVisibility(View.VISIBLE);
				}
			}
		});

现在就可以实现开始描述的要求了。这里面还用到了一张背景图是.9.png的,能大能小哦 

Demo代码:http://download.csdn.net/detail/walker02/4532352

 

分享到:
评论

相关推荐

    在EditView中输入表情

    在Android开发中,实现“在EditView中输入表情”是一个常见的需求,特别是在社交应用或者聊天应用中。这个功能能够提供用户更加丰富的表达方式,增强用户体验。以下是对这一知识点的详细阐述: 1. **EditView的基本...

    自动提示的EditView

    当用户在EditView中输入文字时,系统会实时匹配数据源中的内容,将与输入内容匹配的部分展示为下拉列表供用户选择。这种功能在搜索框中尤其常见,能提高用户的输入效率,减少错误输入的可能性。 实现自动提示功能的...

    自定义editView

    EditText是Android SDK中的一个基础组件,用于接收用户输入的文字信息。在许多应用场景中,我们可能需要对用户的输入进行验证,确保其符合特定格式,例如手机号码必须为11位数字,邮箱地址需符合电子邮件的标准格式...

    下拉框格式的editView

    在Android开发中,`EditText` 是一个非常常见的控件,用于接收用户输入的文字信息。然而,在某些场景下,我们可能需要提供一种更加交互式的输入方式,例如下拉选择框,这样用户可以从预设的选项中选择,而不是手动...

    自定义textview与editview

    同时,可以添加额外的属性(如字体资源、颜色值等)并使用`setXXX()`方法暴露给布局文件,方便在XML中使用。 对于`CustomEditText`,可能我们需要增加如自动完成、密码显示切换等功能。这可能涉及到监听输入事件、...

    editview软键盘自动弹出和隐藏

    在Android开发中,EditView是用户输入文本的常见组件,当用户点击EditView时,系统默认行为是自动弹出软键盘以便用户输入。在某些情况下,我们可能希望自定义这一行为,例如,当我们想要在应用启动时就显示软键盘,...

    EditView左右选择数据

    在Android开发中,EditView是用户界面中常见的一种组件,用于接收用户输入的文字信息。然而,EditView并不仅仅局限于文字输入,它还可以扩展为更复杂的数据选择功能,比如实现左右选择数据的效果。这个"EditView左右...

    EditView_1-源码.rar

    3. `android.text.TextWatcher`: TextWatcher接口用于监听文本变化,EditView会添加TextWatcher来实时获取文本变化事件。 4. `android.widget.TextView`: EditView继承自TextView,因此其大部分基础功能来源于...

    实现EditText内部按钮一键清除

    在自定义EditText中,我们通过TextWatcher监听文本的变化,动态调整清除按钮的可见性。 - 如果你的应用支持多种屏幕尺寸和方向,确保在不同情况下,清除按钮的位置和大小都能正确显示。 通过以上步骤,你已经成功...

    Android编程实现实时监听EditText文本输入的方法

    我们可以通过实现这个接口来监听EditText中的文本变化。 ```java class EditChangedListener implements TextWatcher { private CharSequence temp; // 监听前的文本 private int editStart; // 光标开始位置 ...

    Android EditText 带清空按钮

    总结一下,创建一个带有清空按钮的`EditText`在Android开发中并不复杂,只需要在布局文件中添加`EditText`和按钮,然后在Java或Kotlin代码中设置点击事件和文本监听。通过以上步骤,我们可以创建一个用户友好的输入...

    通过判断editview是否为空动态修改actionbar的控件是否可见

    2. **设置监听器**:为了监听EditText的内容变化,我们需要为EditText添加一个TextWatcher。TextWatcher是一个接口,包含三个方法:beforeTextChanged()、onTextChanged()和afterTextChanged()。我们可以在...

    Android 监听键盘回车键事件

    我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在...

    android监听软键盘的弹出与隐藏的示例代码

    开发者可以创建该接口的实例,并在`onLayout()`方法中调用该接口的`onInputListener()`方法,将状态变化传递给持有该监听器的类。 2. 通过布局变化和偏移量计算来间接监听软键盘。 这种方法不需要自定义View,但...

    自定义View之双表头表格(表头不动,EditView和TextView两种方式)

    为了实现这个功能,我们需要在特定的单元格中嵌入EditView,并处理其焦点变化和文本输入事件。同时,需要确保在用户完成编辑后,更新数据显示。 3. **自定义View的实现步骤**: - **初始化视图**:在构造函数中,...

    android EditText在输入的时候输入框上方现悬浮文字提示

    3. 在代码中操作`EditText`:通过`findViewById()`方法获取`FloatingLabel`对象,并进行设置或监听事件。 除此之外,还可以自定义悬浮文字的颜色、字体大小、动画效果等。这通常通过设置库提供的属性或者直接修改...

    android充值demo 自定义editview自定义radiobutton

    在Android开发中,"android充值demo 自定义editview自定义radiobutton"是一个常见的应用场景,它涉及到用户界面(UI)的设计和交互,特别是针对移动应用中的支付功能。下面将详细讲解这个主题涉及的知识点。 首先,...

    EditView输入过滤器InputFilter

    在Android开发中,`EditText`(也称为EditView)是用户界面中常见的一种组件,用于接收用户输入的数据。为了对用户的输入进行控制和规范,我们可以使用`InputFilter`。本教程将详细介绍`InputFilter`的概念、作用...

    Android限制只能输入中文的EditText

    如果输入的不是中文字符,我们可以在`onTextChanged()`方法中清空EditText的内容,或者显示一个提示信息告知用户只能输入中文。这样,当用户尝试输入非中文字符时,系统会自动将其过滤掉。 6. **代码示例**: 在...

    安卓文件下载上传解压相关-将附件相册中的图片拍照的图片录音等文件转换为html格式在Editview中可以一次插入多种相同类型的文件如多个附件多个相册的图片多个拍照的图片以及多个录音的文件同时拍照的图片会默认存储在sd中新建的文件夹下面以及可以点击查看上传的文件包括附件相册拍照录音的文件。。。。更多功能可以下载后自行了解.rar

    将附件、相册中的图片、拍照的图片、录音等文件转换为html格式,在Editview中可以一次插入多种相同类型的文件(如多个附件、多个相册的图片、多个拍照的图片以及多个录音的文件),同时拍照的图片会默认存储在sd中...

Global site tag (gtag.js) - Google Analytics