欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android BSearchEdit 搜索结果选择框

程序员文章站 2022-06-09 11:36:52
EditText搜索结果下拉框、自动or回调模式、可diy、使用超简便 (EditText search results drop-down box, auto or callback mode, diy, easy to use)#支持自动展示搜索条目 #支持手动展示搜索条目(可自己记录历史数据, ......

edittext搜索结果下拉框、自动or回调模式、可diy、使用超简便 (edittext search results drop-down box, auto or callback mode, diy, easy to use)

#支持自动展示搜索条目

#支持手动展示搜索条目(可自己记录历史数据,可等请求回调后弹出搜索条目)

#背景支持颜色,selector,图片等资源属性

github地址

yangsbryant/bsearchedit

(github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧)

Android BSearchEdit 搜索结果选择框

 

引入module

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

 

implementation 'com.github.yangsbryant:bsearchedit:1.0.4'


bsearchedit属性大全

方法名 属性
build() 参数设置完毕,一定要build一下
settimely(boolean timely) 是否自动展示搜索条目,默认true
showpopup() 手动弹出搜索条目,当settimely为true时失效
settextclicklistener(textclicklistener textclicklistener) 点击监听器
settextwidth(int textwidth) 设置文本宽度,单位dp
settextheight(int textheight) 设置文本高度,单位dp
settextsize(int textsize) 设置文本字体大小
settextcolor(int textcolor) 设置文本颜色
setline_height(int line_height) 设置线条高度,单位dp
setline_width(int line_width) 设置线条宽度,单位dp
setisline(boolean isline) 是否显示分割线
setpopup_bg(int popup_bg) 设置窗体背景,可以是图片,颜色,selector等资源

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

关键代码

 edittext edittext = findviewbyid(r.id.edit_text);//获取一个edittext
 bsearchedit = new bsearchedit(this,edittext,200);//第三个必须要设置窗体的宽度,单位dp
 bsearchedit.build();
 //更新数据
 bsearchedit.setsearchlist(list);

#tips:遇到is your activity running? 那是因为activity还未创建,showpopup()调用的太早了


演示代码

public class mainactivity extends appcompatactivity {

    private arraylist<string> list;
    private bsearchedit bsearchedit;
    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);

        list = new arraylist<>();
        list.add("江西省赣州市");
        list.add("广东省深圳市");
        list.add("广东省珠海市");

        edittext edittext = findviewbyid(r.id.edit_text);
        bsearchedit = new bsearchedit(this,edittext,200);
        bsearchedit.build();
        bsearchedit.setsearchlist(list);

        bsearchedit.settextclicklistener(new bsearchedit.textclicklistener() {
            @override
            public void ontextclick(int position, string text) {
                toast.maketext(mainactivity.this,text,toast.length_short).show();
            }
        });

        button button01 = findviewbyid(r.id.button01);
        button01.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                list.clear();
                list.add("小米 9pro");
                list.add("华为 mate30");
                list.add("vivo nex3");
                list.add("iphone 11");
                bsearchedit.setsearchlist(list);
                toast.maketext(mainactivity.this,"更新数据成功",toast.length_short).show();
            }
        });

        button button02 = findviewbyid(r.id.button02);
        button02.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                list.clear();
                list.add("瑞士民众抵制5g");
                list.add("威马汽车起火");
                list.add("王者荣耀新英雄西施");
                list.add("黄渤出演姜子牙");
                list.add("北京天空飞机刷屏");
                list.add("kimi名字由来");
                bsearchedit.setsearchlist(list);
                toast.maketext(mainactivity.this,"更新数据成功",toast.length_short).show();
            }
        });
    }
}

#演示代码工程里有