Android自定义单选多选下拉列表的实例代码

发布时间 - 2026-01-11 02:33:52    点击率:

发疯的产品要做一个可以单选和多选的下拉列表,陪你玩玩吧。

直接上效果:

实现方案:

我的思路是自定义一个类继承PopupWindow,里面的选项采用Listview,再结合一些动画来实现。

核心代码:

public class MultiSelectPopupWindows extends PopupWindow {

  private Context context;
  private View parent;
  private List<Search> data;
  private int yStart;
  private SearchPopupWindowsAdapter adapter;

  public MultiSelectPopupWindows(Context context, View parent, int yStart, List<Search> data) {
    this.context = context;
    this.parent = parent;
    this.yStart = yStart;
    this.data = data;
    initView();
  }

  private void initView() {
    View view = View.inflate(context, R.layout.popupwindows_multiselect, null);
    view.startAnimation(AnimationUtils.loadAnimation(context, R.anim.fade_in_slow));
    LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.linearLayout_selector);
    linearLayout.startAnimation(AnimationUtils.loadAnimation(context, R.anim.list_top_in));
    ListView listView = (ListView) view.findViewById(R.id.listView_selector);

    setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
    setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
    setBackgroundDrawable(new BitmapDrawable());
    setFocusable(true);
    setOutsideTouchable(true);
    setContentView(view);
    showAtLocation(parent, Gravity.TOP, 0, DensityUtil.dip2px(context, yStart));
    update();

    initListView(listView, data);
  }

  private void initListView(ListView listView, List<Search> data) {
    adapter = new SearchPopupWindowsAdapter(context);
    adapter.setItems(data);
    listView.setAdapter(adapter);
  }

  public List getItemList() {
    return adapter.getItemList();
  }

}
 

项目源码:https://github.com/hfrommane/MultiSelectPopupWindows

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # 单选下拉列表  # 多选下拉列表  # Android实现弹出列表、单选、多选框  # Android ExpandableListView单选以及多选实现代码  # Android ListView实现单选及多选等功能示例  # Android Recyclerview实现多选  # 单选  # 全选  # 反选  # 批量删除的功能  # Android使用AlertDialog实现的信息列表单选、多选对话框功能  # Android中ListView + CheckBox实现单选、多选效果  # Android实现单选与多选对话框的代码  # Android ListView构建支持单选和多选的投票项目  # Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码  # Android单选多选按钮的使用方法  # 要做  # 自定义  # 陪你  # 来实现  # 大家多多  # 多选  # 玩玩吧  # List  # lt  # gt  # Search  # parent  # Context  # private  # View 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何快速建站并高效导出源代码?  JavaScript常见的五种数组去重的方式  QQ浏览器网页版登录入口 个人中心在线进入  免费视频制作网站,更新又快又好的免费电影网站?  Laravel如何实现多对多模型关联?(Eloquent教程)  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  非常酷的网站设计制作软件,酷培ai教育官方网站?  iOS UIView常见属性方法小结  如何确保西部建站助手FTP传输的安全性?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  详解Android图表 MPAndroidChart折线图  js实现点击每个li节点,都弹出其文本值及修改  C++时间戳转换成日期时间的步骤和示例代码  创业网站制作流程,创业网站可靠吗?  Laravel怎么使用artisan命令缓存配置和视图  如何在建站之星绑定自定义域名?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel怎么在Controller之外的地方验证数据  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何在云虚拟主机上快速搭建个人网站?  ,在苏州找工作,上哪个网站比较好?  如何快速查询网站的真实建站时间?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel如何使用Vite进行前端资源打包?(配置示例)  Linux后台任务运行方法_nohup与&使用技巧【技巧】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel如何实现用户注册和登录?(Auth脚手架指南)  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何为不同团队 ID 动态生成多个独立按钮  如何用免费手机建站系统零基础打造专业网站?  如何挑选高效建站主机与优质域名?  php json中文编码为null的解决办法  java中使用zxing批量生成二维码立牌  javascript基于原型链的继承及call和apply函数用法分析  如何挑选最适合建站的高性能VPS主机?  如何快速搭建高效WAP手机网站吸引移动用户?  JavaScript如何实现音频处理_Web Audio API如何工作?  如何在阿里云虚拟主机上快速搭建个人网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Python函数文档自动校验_规范解析【教程】  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用