• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 爱情文章 > 正文

    vb清空文本框内容 Android,编程中文本框中搜索和清空效果实现

    时间:2020-05-29来源:山茶花美文网 本文已影响 山茶花美文网手机站

    正文

    一、实现效果

    Android 编程中文本框中搜索和清空效果实现1 Android 编程中文本框中搜索和清空效果实现2

    二、实现代码

    监听输入

    /**

    * 动态搜索

    */

    private TextWatcher tbxSearch_TextChanged = new TextWatcher() {

    //缓存上一次文本框内是否为空

    private boolean isnull = true;

    @Override

    public void afterTextChanged(Editable s) {

    if (TextUtils.isEmpty(s)) {

    if (!isnull) {

    mSearchView.setCompoundDrawablesWithIntrinsicBounds(null,

    null, mIconSearchDefault, null);

    isnull = true;

    }

    } else {

    if (isnull) {

    mSearchView.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(mSearchView.getText())) {

    mSearchView.setText("");

    int cacheInputType = mSearchView.getInputType();// backup the input type

    mSearchView.setInputType(InputType.TYPE_NULL);// disable soft input

    mSearchView.onTouchEvent(event);// call native handler

    mSearchView.setInputType(cacheInputType);// restore input type

    return true;// consume touch even

    }

    break;

    }

    return false;

    }

    };

    绑定事件

    private Drawable mIconSearchDefault; // 搜索文本框默认图标

    private Drawable mIconSearchClear; // 搜索文本框清除文本内容图标

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(yout.main)

    final Resources res = getResources();

    mIconSearchDefault = res.getDrawable(R.drawable.txt_search_default);

    mIconSearchClear = res.getDrawable(R.drawable.txt_search_clear);

    mSearchView = (EditText) findViewById(R.id.txtSearch);

    mSearchView.addTextChangedListener(tbxSearch_TextChanged);

    mSearchView.setOnTouchListener(txtSearch_OnTouch);

    }

    代码说明:

    1. 为输入框绑定触摸事件(模拟点击事件捕捉)。通过监听点击区域判断是否点击清空图片,如果在该区域并且文本框不为空,则清空文本框。

    2. 为输入框绑定文本改变事件监听,根据内容改变动态设置图标显示。

    3. 维持清空操作后软键盘状态。

    • vb清空文本框内容 Android,编程中文本框中搜索和清空效果实现 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全