Android开发Edittext延迟搜索

Android开发Edittext延迟搜索

需求 :

点击Edittext输入1秒后,如果1秒内没有新输入的内容,就进行搜索 ;如果搜索内容改变,则remove掉handler里面的请求,直到无输入数据变化1秒后进行搜索

逻辑代码:

如下

public class EditTextActivity extends AppCompatActivity implements Handler.Callback {
    private EditText etInput;
    MyHandler mHandler = new MyHandler(this);


    private static class MyHandler extends Handler {
        WeakReference<EditTextActivity> mActivityReference;

        MyHandler(EditTextActivity activity) {
            mActivityReference = new WeakReference<>(activity);
        }

        @Override
        public void handleMessage(Message msg) {
            EditTextActivity activity = mActivityReference.get();
            if (activity != null) {
                activity.handleMessage(msg);
            }
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_text);
        etInput = findViewById(R.id.et_input);
        // 设置监听
        etInput.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) {
                if (mHandler.hasMessages(1002)) {//信息搜索
                    mHandler.removeMessages(1002);
                }
                //1000: //EditText输入变化延迟时间1s
                mHandler.sendEmptyMessageDelayed(1002, 1000);
            }
        });
    }

    @Override
    public boolean handleMessage(Message message) {
        switch (message.what) {
            case 1002://输入1s后显示(1s内输入数据无变化)

                break;
        }
        return false;
    }
}

布局文件:

 <EditText
        android:id="@+id/et_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
发布了22 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36158551/article/details/82530371