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);
	}






你可能感兴趣的:(EditText)