属性

  • android:drawableLeft:在text的左边输出一个drawable,可以是图片,样式,颜色等。
  • android:drawableRight:在text的右边输出一个drawable,可以是图片,样式,颜色等。
  • android:inputType:设置输入字符的类型,"numberDecimal"表示可以输入带小数点的浮点数,同时当输入文字时键盘为数字键盘
  • android:imeOptions:设置默认情况下软键盘右下角的按钮显示内容,若为"actionSearch",显示为搜索
  • android:hint:设置默认情况下显示在空间上的提示,当输入内容时,提示消失
  • android:maxLines:设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

事件

addTextChangedListener

是android文本框改变的一个监听器,一般用于统计文本输入、监测输入是否符合规范等。要想监听文本框的文本改变情况需要实现:beforeTextChanged、onTextChanged、 afterTextChanged三个方法。这里主要用来检测是否输入内容,若输入内容,则显示搜索按钮,以及×号的出现。

输入内容时:

未输入内容时:

licheng.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) {        }        @Override        public void afterTextChanged(Editable s) {            lc_end=licheng.getText().toString().trim();            //Toast.makeText(MainActivity.this, lc_end+"enen", Toast.LENGTH_SHORT).show();            if(lc_end.equals("")) {                //Toast.makeText(MainActivity.this, "HI", Toast.LENGTH_SHORT).show();                btn_search.setVisibility(Button.GONE);                Drawable leftDrawable = getResources().getDrawable(R.drawable.ic_search_grey_600_24dp);                leftDrawable.setBounds(0, 0, leftDrawable.getMinimumWidth(), leftDrawable.getMinimumHeight());                licheng.setCompoundDrawables(leftDrawable, null, null, null);            }else{                //Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_SHORT).show();                btn_search.setVisibility(Button.VISIBLE);                Drawable rightDrawable = getResources().getDrawable(R.drawable.ic_clear_black_18dp);                rightDrawable.setBounds(0, 0, rightDrawable.getMinimumWidth(), rightDrawable.getMinimumHeight());                Drawable leftDrawable = getResources().getDrawable(R.drawable.ic_search_grey_600_24dp);                leftDrawable.setBounds(0, 0, leftDrawable.getMinimumWidth(), leftDrawable.getMinimumHeight());                licheng.setCompoundDrawables(leftDrawable, null, rightDrawable, null);            }        }    });

主要使用的是afterTextChanged方法,在文本框中文本变化之后,当输入内容为空时,设置button为GONE即不显示,同时不显示文本框中搜索图片;当输入内容不为空时,设置button为VISIBLE即显示,同时显示搜索图片和×号。

setOnTouchListener

是对某一个控件某一个View是否点击的监控器,一般用于判断某控件是否被点击,想要监控控件是否被点击需要实现:onTouch()方法。这里用来判断文本框中的×号是否被点击,如果点击了,则文本框中的内容设置为空。

 licheng.setOnTouchListener(new View.OnTouchListener() {        @Override        public boolean onTouch(View v, MotionEvent event) {            Drawable drawable = licheng.getCompoundDrawables()[2];            //如果右边没有图片,不再处理            if (drawable == null)                return false;            //如果不是按下事件,不再处理            if (event.getAction() != MotionEvent.ACTION_UP)                return false;            if (event.getX() > licheng.getWidth()                    - licheng.getPaddingRight()                    - drawable.getIntrinsicWidth()){                licheng.setText("");            }            return false;        }    });

首先判断是否×号图片是否存在,若为true,则判断是否为按下事件,若为true,则判断按下区域是否为×号图片所在位置,若为true,则文本框内容为空。

setOnEditorActionListener

是给文本框添加编辑监听事件,需要注意的是 setOnEditorActionListener这个方法,并不是在我们点击EditText的时候触发,也不是在我们对EditText进行编辑时触发,而是在我们编辑完之后点击软键盘上的回车(这里为搜索)键才会触发。这里对回车按钮进行监控,若文本框内容为空,点击之后弹出提示,若不为空,进入到下一个activity。

licheng.setOnEditorActionListener(new TextView.OnEditorActionListener() {        @Override        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {           String lc_end=licheng.getText().toString();            if(TextUtils.isEmpty(lc_end)) {                Toast.makeText(MainActivity.this, "查询内容不能为空", Toast.LENGTH_SHORT).show();                licheng.requestFocus();                InputMethodManager imm = (InputMethodManager) licheng.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);                imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);            }else{                xlm=sp_xlm.getSelectedItem().toString();                positi=sp_xlm.getSelectedItemPosition();                traData();            }            return false;        }    });

这里提示是用toast来显示的,传递数据用了一个方法。

更多相关文章

  1. 演化理解 Android 异步加载图片
  2. Android布局的一些属性和开关、创建log图片
  3. Android WebView实现选择本地图片拍照功能
  4. Android Studio App设置TextView文字内容大小颜色
  5. 很实用的android压缩图片的算法
  6. 值得学习的博客内容
  7. android imageView 图片显示方式属性
  8. Android 为联系人添加图片

随机推荐

  1. android那点事--连上单片机蓝牙模块(csr b
  2. Android之异步处理
  3. Android中的Activity生命周期学习
  4. Android开发者必备的十个工具介绍
  5. Android 4.4(KitKat)窗口管理分系统 - 体
  6. 5个最佳的Android测试框架(带示例)
  7. 那些年,我们一起追的Android
  8. Android商城开发(一)——一次活动页需求引
  9. Android中的Activity之间传递自定义类型
  10. android板子几种调试方式