Android模糊查询的Spinner,模糊查询下拉选择框

最近做了个需求,后台返回了一个列表数据地址,实现下拉选择框,之前直接用了系统Spinner结果需要添加模糊查询功能找了很久的资料发现各个方案都不太一样本来想要自己写一个的结果发现了一个大佬写的跟需求差不多拿来改了一些。

添加链接描述
大佬的gitee原文地址需要的可以去看看写的很好也很清晰

public class AppCompatEditSpinner {
    /**
     * 使用SimpleAdapter加载数据
     * <p>
     * 需要在
     * {@link AppCompatEditSpinner#setMatchIgnoreCase(boolean)}、
     * {@link AppCompatEditSpinner#setMatchTextColor(String)}、
     * {@link AppCompatEditSpinner#setSpinnerItemTextColor(int)}、
     * {@link AppCompatEditSpinner#setSpinnerItemTextSize(int)}、
     * {@link AppCompatEditSpinner#setSpinnerBackground(int)}
     * 属性设置之后调用。
     */
    public void setItemData(List<String> data);
    
     /**
     * 使用继承{@link BaseEditSpinnerAdapter}的适配器加载数据
     * <p>
     * 需要在
     * {@link AppCompatEditSpinner#setMatchIgnoreCase(boolean)}、
     * {@link AppCompatEditSpinner#setMatchTextColor(String)}、
     * {@link AppCompatEditSpinner#setSpinnerItemTextColor(int)}、
     * {@link AppCompatEditSpinner#setSpinnerItemTextSize(int)}、
     * {@link AppCompatEditSpinner#setSpinnerBackground(int)}
     * 属性设置之后调用
     */
    public void setAdapter(BaseEditSpinnerAdapter adapter);
    
     /**
     * 设置文本
     */
    public void setText(@StringRes int text);

    /**
     * 设置文本
     */
    public void setText(String text);

    /**
     * 设置Hint文本
     */
    public void setHint(@StringRes int hint);

    /**
     * 设置Hint文本
     */
    public void setHint(String hint);

    /**
     * 设置Hint的文本颜色
     */
    public void setHintTextColor(@ColorInt int color);

    /**
     * 设置背景
     */
    public void setEditBackgroundResource(@DrawableRes int resource);

    /**
     * 设置输入文字字体大小,单位:sp
     */
    public void setEditTextSize(int size);

    /**
     * 设置输入文字颜色
     */
    public void setEditTextColor(@ColorInt int color);

    /**
     * 设置输入限制最大行数
     */
    public void setEditMaxLines(int maxLines);

    /**
     * 设置输入限制最大字符长度
     */
    public void setEditMaxLength(int maxLength);

    /**
     * 设置输入限制类型
     * <p>
     * 例如:{@link  InputType#TYPE_CLASS_TEXT}
     */
    public void setEditInputType(int inputType);

    /**
     * 设置输入限制字符
     */
    public void setEditDigits(@StringRes int digits);

    /**
     * 设置输入限制字符
     */
    public void setEditDigits(String digits);

    /**
     * 设置是否隐藏右侧下拉选图标
     */
    public void setRightImageGone(boolean rightImageGone);

    /**
     * 右侧图片展开下拉选时是否显示全部数据,默认:点击时显示和当前输入匹配的数据
     */
    public void setRightImageDropShowAllItem(boolean rightImageDropShowAllItem);

    /**
     * 匹配字符的颜色,忽略字母大小写时,此属性无效
     *
     * <p>
     * 必须在{@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用之前进行设置
     * <p>
     * {@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
     *
     * @param matchTextColor RGB形式,需要包含#号,例如:“#000000”
     */
    public void setMatchTextColor(String matchTextColor);

    /**
     * 匹配字符时是否忽略字母大小写,默认不忽略。
     *
     * <p>
     * 必须在{@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
     * <p>
     * {@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
     */
    public void setMatchIgnoreCase(boolean matchIgnoreCase);

    /**
     * 待选项的颜色,默认黑色
     *
     * <p>
     * 必须在{@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
     * <p>
     * {@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
     */
    public void setSpinnerItemTextColor(@ColorInt int spinnerItemTextColor);

    /**
     * 待选项的字体大小,单位sp。
     *
     * <p>
     * 必须在{@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
     * <p>
     * {@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
     */
    public void setSpinnerItemTextSize(int spinnerItemTextSize);

    /**
     * 待选项的背景
     *
     * <p>
     * 必须在{@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
     * <p>
     * {@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
     */
    public void setSpinnerBackground(Drawable spinnerBackground);

    /**
     * 待选项的背景
     *
     * <p>
     * 必须在{@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)}调用之前进行设置
     * <p>
     * {@link AppCompatEditSpinner#setItemData(List)}
     * 或者{@link AppCompatEditSpinner#setAdapter(BaseEditSpinnerAdapter)} 调用后不可再次修改
     */
    @SuppressLint("UseCompatLoadingForDrawables")
    public void setSpinnerBackground(@DrawableRes int spinnerBackground);

    /**
     * 获取输入的文本
     */
    public String getText();

    /**
     * 设置下拉选图标
     */
    public void setRightImageDrawable(Drawable drawable);

    /**
     * 设置下拉选图标
     */
    public void setRightImageResource(@DrawableRes int res);

    /**
     * 获取输入控件EditText,可做特殊配置
     */
    public AppCompatEditText getEditText();

    /**
     * 获取右侧ImageView,可做特殊配置
     */
    public AppCompatImageView getRightImageView();
}

基本上开放性挺高的,自己也改了不少需要的话欢迎评论来要代码 狗头保命

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值