`

EditText文本框清空效果

 
阅读更多
	/**
	 * 动态搜索
	 */
	private TextWatcher tbxSearch_TextChanged = new TextWatcher() {

		// 缓存上一次文本框内是否为空
		private boolean isnull = true;

		@Override
		public void afterTextChanged(Editable s) {
			Log.e(DEBUG_TAG, "TextWatcher afterTextChanged s=" + s.toString()
					+ ",isnull=" + isnull);
			if (TextUtils.isEmpty(s)) {
				if (!isnull) {
					load_url.setCompoundDrawablesWithIntrinsicBounds(null,
							null, mIconSearchDefault, null);
					isnull = true;
				}
			} else {
				// if (isnull) {
				load_url.setCompoundDrawablesWithIntrinsicBounds(null, null,
						mIconSearchClear, null);
				isnull = false;
				// }
			}
		}

		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,
				int after) {
		}

		/**
		 * 随着文本框内容改变动态改变列表内容
		 */
		@Override
		public void onTextChanged(CharSequence s, int start, int before,
				int count) {

		}
	};

	private OnTouchListener txtSearch_OnTouch = new OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			switch (event.getAction()) {
			case MotionEvent.ACTION_UP:
				int curX = (int) event.getX();
				if (curX > v.getWidth() - 38
						&& !TextUtils.isEmpty(load_url.getText())) {
					load_url.setText("");
					// backup the input type
					int cacheInputType = load_url.getInputType();
					// disable soft input
					load_url.setInputType(InputType.TYPE_NULL);
					// call native handler
					load_url.onTouchEvent(event);
					// restore input type
					load_url.setInputType(cacheInputType);
					// consume touch event
					return true;
				}
				break;
			}
			return false;
		}
	};

	/**
	 * 搜索文本框默认图标
	 */
	private Drawable mIconSearchDefault;
	/**
	 * 搜索文本框清除文本内容图标
	 */
	private Drawable mIconSearchClear;
	
	private EditText load_url;



/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// 设置Activity的布局文件
		setContentView(R.layout.main);

		Resources res = getResources();
		mIconSearchDefault = res.getDrawable(R.drawable.txt_search_default);
		mIconSearchClear = res.getDrawable(R.drawable.txt_search_clear);
		
		load_url = (EditText) editView.findViewById(R.id.load_url);
		load_url.addTextChangedListener(tbxSearch_TextChanged);
		load_url.setOnTouchListener(txtSearch_OnTouch);
	}






  • 大小: 930 Bytes
  • 大小: 373 Bytes
分享到:
评论

相关推荐

    Android EditText 带清空按钮

    然而,为了提供更好的用户体验,开发者可能会希望在`EditText`旁边添加一个“清空”或“清除”按钮,让用户能够方便地删除已输入的内容。本文将详细介绍如何在Android应用中实现这样一个带有清空按钮功能的`EditText...

    Android文本框搜索和清空效果实现代码及简要概述

    【Android 文本框搜索与清空效果实现】 在Android应用开发中,文本框(EditText)是用户输入数据的重要组件。为了提升用户体验,我们有时需要在文本框中添加搜索和清空功能,例如当用户在文本框中输入内容时显示一...

    自动清空edittext_android源码.zip

    然而,有时候我们需要实现一个功能,即当用户在EditText中输入完毕后,文本框自动清空,以准备下一次输入。这个功能在一些特定场景下非常有用,比如密码输入、搜索框等。下面我们将深入探讨如何实现这一功能,并结合...

    安卓Android源码——自动清空edittext.zip

    这个压缩包“安卓Android源码——自动清空edittext.zip”似乎包含了一些与自定义`EditText`组件相关的源代码和资源文件,目的是在用户完成输入后自动清空文本框的内容,以提供更好的用户体验。 首先,我们来讨论...

    安卓Android源码——文本框可输入字符数量源码.zip

    在安卓(Android)开发中,有时我们需要限制用户在EditText文本框中输入的字符数量,以满足特定的应用场景,比如手机号码、密码等输入限制。这个压缩包提供的源码就是一个实现这一功能的例子。以下是对该源码及其...

    删除输入框的文字

    这个Demo展示了如何实现在文本框(EditText)中添加一个可点击的删除图标,以便用户点击后能快速清空文本。下面我们将详细探讨实现这一功能的关键步骤和技术点。 首先,我们需要在布局XML文件中为EditText添加一个...

    Android Studio EditText点击图标清除文本内容的实例解析

    在许多应用程序中,我们可能需要在EditText右边添加一个清除图标,用户点击该图标时,可以清空输入的文本内容。本文将详细讲解如何在Android Studio中实现这一功能。 首先,我们需要创建一个新的自定义EditText类,...

    安卓EditText输入框相关-D-左边图片的文本框当文字输入时改变图片模仿微博登录框.rar

    本教程将探讨如何创建一个带有左侧图像的EditText,并且在用户输入文字时动态改变该图像,模仿微博登录框的效果。这一功能可以提升用户体验,使得输入框更加直观、友好。 首先,我们需要在布局XML文件中定义...

    android 自定义EditText,可删除

    比如,用户可能需要一个能够方便清除输入内容的EditText,或者需要动态改变文本框的显示样式。本篇将详细介绍如何在Android中自定义EditText以实现这些高级功能。 首先,我们需要创建一个新的布局XML文件来定义我们...

    Android清空编辑框内容功能的实现实例代码

    * @param editText 需要清空的EditText控件 * @param delImageView 清空数据的图片 */ protected void clearEditText(final EditText editText, final ImageView delImageView) { /文本框编辑的监听/

    在android上实现仿照iOS搜索栏 居中效果,点击到最左边的demo eclipse项目

    `EditText`是Android用于输入文本的基本组件,我们可以设置其样式以达到居中显示的效果。 1. **创建布局**: - 使用`LinearLayout`或`ConstraintLayout`作为父布局,设置垂直方向(`android:orientation="vertical...

    D-左边图片的文本框,当文字输入时改变图片,模仿微博登录框

    为了实现这个微博登录框的效果,我们需要在`EditText`左侧添加一个图片,并监听用户的输入事件。这可以通过以下步骤完成: 1. **布局设计**:在布局XML文件中,我们可以使用`<EditText>`标签来创建输入框,并在其中...

    Android应用源码之文本框可输入字符数量源码-IT计算机-毕业设计.zip

    在Android应用开发中,文本框(EditText)是用户交互的重要组成部分,它允许用户输入文本数据。这个"Android应用源码之文本框可输入字符数量源码"是一个针对毕业设计学习的示例项目,旨在教授如何限制用户在文本框中...

    Android带清除功能的输入框控件EditTextWithDel

    在Android开发中,有时我们需要为EditText输入框添加额外的功能,比如在输入框右侧添加一个清除按钮,以便用户能快速清空输入内容。由于Android原生的EditText控件并不自带这样的特性,因此我们需要自定义一个扩展类...

    Android自定义控件EditText实现清除和抖动功能

    在这个实例中,我们探讨的是如何自定义一个EditText控件,实现清除文本和文本框抖动的功能。这个自定义控件名为ClearEditText,它扩展了EditText,并实现了View.OnFocusChangeListener和TextWatcher接口。 首先,...

    Android自定义控件EditText使用详解

    2. **组合控件**:将多个原生控件组合在一起,形成新的功能组件,例如一个包含输入框和清除按钮的自定义文本框。 3. **继承控件**:在现有控件的基础上进行扩展,通过重写或添加方法来增加新功能,比如我们这里的...

Global site tag (gtag.js) - Google Analytics