多选列表对话框

 

和单选列表对话框相似,这里需要通过setMultiChoiceItems将array.xml中的数据添加进去。
当单击列表项时会产生Click事件,这里用到的监听器是DialogInterface.OnMultiChoiceClickListener,
具体实现如下:
 第一步:
添加res/values/array.xml的数据
[xhtml] view plaincopy
<?xml version="1.0" encoding="utf-8"?>  
<resources>  
    <string-array name="hobby">  
        <item>篮球</item>  
        <item>足球</item>  
        <item>排球</item>  
    </string-array>  
</resources>  

 
第二步:一个输入框和一个按钮
res/layout/muti_choice_dialog_layout.xml
[xhtml] view plaincopy
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout  
  xmlns:android="http://schemas.android.com/apk/res/android"  
  android:orientation="vertical"  
  android:layout_width="fill_parent"  
  android:layout_height="wrap_content">  
  <EditText android:id="@+id/editText"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="这是一个多选列表对话框"  
  />  
  <Button android:id="@+id/button"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="显示多选列表对话框"  
  />  
</LinearLayout>  

 
第三步:
src/com/dialog/activity/MutiChoiceDialogActivity.java
[java] view plaincopy
package com.dialog.activity;  
  
import android.app.Activity;  
import android.app.AlertDialog;  
import android.app.AlertDialog.Builder;  
import android.app.Dialog;  
import android.content.DialogInterface;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.EditText;  
  
public class MutiChoiceDialogActivity extends Activity {  
      
    private final int MUTI_CHOICE_DIALOG = 1;  
      
    boolean[] selected = new boolean[]{false,false,false};  
      
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.muti_choice_dialog_layout);  
          
        Button button = (Button) findViewById(R.id.button);  
        View.OnClickListener listener = new View.OnClickListener() {  
              
            @Override  
            public void onClick(View view) {  
                showDialog(MUTI_CHOICE_DIALOG);  
            }  
        };  
        button.setOnClickListener(listener);  
    }  
      
    @Override  
    protected Dialog onCreateDialog(int id) {  
        Dialog dialog = null;  
        switch(id) {  
            case MUTI_CHOICE_DIALOG:  
                Builder builder = new AlertDialog.Builder(this);  
                builder.setTitle("多选列表对话框");  
                builder.setIcon(R.drawable.basketball);  
                DialogInterface.OnMultiChoiceClickListener mutiListener =   
                    new DialogInterface.OnMultiChoiceClickListener() {  
                          
                        @Override  
                        public void onClick(DialogInterface dialogInterface,   
                                int which, boolean isChecked) {  
                            selected[which] = isChecked;  
                        }  
                    };  
                builder.setMultiChoiceItems(R.array.hobby, selected, mutiListener);  
                DialogInterface.OnClickListener btnListener =   
                    new DialogInterface.OnClickListener() {  
                        @Override  
                        public void onClick(DialogInterface dialogInterface, int which) {  
                            String selectedStr = "";  
                            for(int i=0; i<selected.length; i++) {  
                                if(selected[i] == true) {  
                                    selectedStr = selectedStr + " " +  
                                        getResources().getStringArray(R.array.hobby)[i];  
                                }  
                            }  
                              
                            EditText editText = (EditText) findViewById(R.id.editText);  
                            editText.setText(selectedStr);  
                        }  
                    };  
                builder.setPositiveButton("确定", btnListener);  
                dialog = builder.create();  
                break;  
        }  
        return dialog;  
    }  
}  

 效果图:

 

 

这个哥自己的代码~
AlertDialog builder = new AlertDialog.Builder(ReviewsActivity.this)
				.setTitle("标签")
				.setMultiChoiceItems(tagStrings, taged,
						new OnMultiChoiceClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which, boolean isChecked) {
								if (isChecked) {
									lv.setItemChecked(which, false);
								}
							}
						})
				.setPositiveButton("确定", new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						if (lv.getCheckedItemCount() <= 0) {
							Toast.makeText(
									ReviewsActivity.this,
									ReviewsActivity.this
											.getString(R.string.tags_null),
									Toast.LENGTH_SHORT).show();
							showTagsItems();
						} else {
							for (int i = 0; i < taged.length; i++) {
								if (lv.getCheckedItemPositions().get(i)) {
									taged[i] = true;
								}
							}
							System.out.println(taged);
						}
					}
				}).setNegativeButton("取消", null).create();
		lv = builder.getListView();
		builder.show();
如果你自己不写取消选中状态的代码~丫就取消不了选中的状态~多他妈的坑爹的设计啊~

 

自定义单选,多选对话框(android) 史上最强的自定义单选多选对话框 可作为UI模板应用于项目中 少量改动即可实现定制 立即下载

相关推荐

4.无限共轭距柯克物镜设计——zemax学习笔记

无限共轭cooker物镜

fly_daerm的博客 1596

android 显示多选列表对话框setMultiChoiceItems listview

标签: 杂谈   public class MultiChoiceItemsTest extends Activity implements OnClickListener{    private String[] province = new String[] { "上海", "北京", "湖南", "湖北", "海南" };    private Button btnMultiChoice; ...

sinat_28238111的博客 4650

Codex本地部署指南:从环境配置到API集成实战

Codex作为OpenAI推出的代码生成模型,能够根据自然语言描述自动生成代码片段,大幅提升开发效率。这次我们重点分析Codex的本地部署方案、硬件门槛、接口调用方式和实际使用效果,帮助开发者判断是否值得投入时间部署。 从技术架构看,Codex基于GPT-3模型微调,专门针对代码生成任务优化。最新版本支持多种编程语言,包括Python、JavaScript、Java、C++等主流语言。对于国内开发者来说,最关心的是能否在本地环境稳定运行,以及是否需要特殊网络配置。 1. 核心能力速览 能力项 技术说明 模型

weixin_33309048的博客 523

android 显示多选列表对话框setMultiChoiceItems

一、通过AlertDialog.Builder类的setMultiChoiceItems()方法可以创建列表对话框,方法如下: 1、 从资源文件中装载数据: public Builder setMultiChoiceItems(int itemsId, boolean[] checkedItems, final OnMultiChoiceListener listener) 2、从数据集中装

Android开发 9014

保姆级教程:用Ansible 2.9自动化配置华为ENSP路由器(附Cloud连接避坑指南)

本文提供了一份详细的Ansible 2.9与华为ENSP路由器自动化配置教程,涵盖环境搭建、网络连通性配置、Playbook开发及典型问题排查。特别针对Cloud连接常见问题提供避坑指南,帮助运维工程师快速掌握网络自动化技能,提升工作效率。

weixin_42561476的博客 375

Cadence Allegro实战:如何精准导入结构DXF文件避免安装偏差(附图层配置技巧)

本文详细讲解了在Cadence Allegro中精准导入结构DXF文件以避免安装偏差的实战技巧。核心在于导入前的单位校准、创建专用图层结构,以及基于坐标基准点的精确对齐方法。文章还分享了将DXF图形转化为正式板框和禁布区、高效管理图层以及向结构工程师导出DXF的完整流程,帮助PCB工程师确保设计与机械结构完美契合。

1a2s3d4f5g的博客 506

Androd studio对话框.setMultiChoiceItems实现添加全选与反选另类方法

该方法主要是通过控制setMultiChoiceltems中的布尔数组和重新创建一个新的对话框来实现,运行起来会有一个缺点就是点选全选还返选会看到对话框闪一下,因为是关闭原对话框重新创建的一个新对话框。String[] dataArray = new String[]{"广东省","湖南省","四川省","湖北省","江苏省"};bulider.setNegativeButton("全选/返选",(dialogInterface, i) -> {

Great_Qing的博客 661

SAP 创建PO时提示“不能确定任何组件”

SAP 创建委外加工的PO时提示“不能确定任何组件” 而如果BOM已经创建了,但还是提示该错误保存。 解决办法:1. BOM selection 未配置好; 2. 由于Purchasing prosessing time的设置,如果PO中的delivery time - Purchasing prosessing time是过去的日期,那么会找不到BOM,BOM的有效期需早 于PO审批的有效期。 3. BOM未...

willieyuan的博客 6116

setSingleChoiceItems和setMultiChoiceItems的区别

setSingleChoiceItems方法:写入的参数: 一.new String(){......};用于展示内容供看以便选择; 二.int TextView-->用于告诉是选择了第几个 三.DialogInterface.OnClickListener接口里面的onClick方法和前面的PositiveButton的onClick方法没区别都是以DialogInterface对象和int which为参数, TextView是用来接受监听器传回来的选择序号,以便修改信息; setMul

qq_58291877的博客 1371

[Dify实战] 招聘筛简历机器人:自动筛选、排序、生成面试要点-带绑定资源

摘要:本文介绍了如何利用Dify优化简历筛选流程,解决人工筛选耗时、标准不统一等问题。通过结构化输出"评分+亮点+风险+面试关注点",将主观判断转化为规则化流程。关键步骤包括:设计标准化Prompt、配置权重排序策略、确保公平合规性、与ATS系统对接,以及持续优化评估指标。该方法能显著提升筛选效率(缩短招聘周期)、增强一致性(避免主观偏差),并为面试官提供结构化参考信息,最终实现更高效精准的人才筛选。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 581

29、Power BI 中行级安全(RLS)的实现与应用

本文详细介绍了在Power BI中实现行级安全(RLS)的方法,包括静态RLS和动态RLS的实现流程、适用场景及对比分析。通过具体业务场景,展示了如何创建安全角色、定义规则、验证角色、发布模型以及分配成员。此外,还探讨了更复杂的动态RLS场景,如基于父子层次结构的数据访问控制和从外部源获取用户信息的实现方式。文章最后总结了最佳实践建议及未来发展趋势,为企业在Power BI中高效、安全地实施数据访问控制提供了全面指导。

terraform7cloud的博客 195

Android 列表多选对话框

&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_...

qq_38922435的博客 3079

创新引入HAttention模块:提升YOLOv8小目标检测精度【YOLOv8】

YOLOv8在前几个版本的基础上进行了多项优化,特别是在模型的速度和精度上做了较大改进。改进的backbone:引入了更加高效的骨干网络(backbone)设计,如更深的网络层和更高效的特征提取模块。增强的Neck模块:使用了PANet等机制来更好地融合不同尺度的特征,增强了多尺度目标检测能力。增强的Head模块:包括多头检测头,以便针对不同大小的目标进行更精细的预测。尽管如此,YOLOv8仍面临着在小目标检测精度上不如大型目标的挑战,尤其在复杂背景或高密度目标环境下。

博客 2769

18. android dialog —— 多选列表对话框

和单选列表对话框相似,这里需要通过setMultiChoiceItems将array.xml中的数据添加进去。当单击列表项时会产生Click事件,这里用到的监听器是DialogInterface.OnMultiChoiceClickListener,具体实现如下: 第一步:添加res/values/array.xml的数据篮球足球排球第二步:一个输入框和一个按钮res/layout/muti_choice_dialog_layout.xml

2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android多选对话框应用,android dialog —— 多选列表对话框

和单选列表对话框相似,这里需要通过setMultiChoiceItems将array.xml中的数据添加进去。当单击列表项时会产生Click事件,这里用到的监听器是DialogInterface.OnMultiChoiceClickListener,具体实现如下:第一步:添加res/values/array.xml的数据篮球足球排球第二步:一个输入框和一个按钮res/layout/muti_cho...

weixin_35245810的博客 1140

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

安卓通知的使用系列4:对话框通知的使用之列表对话框、单选列表对话框、多选列表对话框

列表对话框是对话框的一种常见形式,在android开发中使用比较普遍,下面我们来介绍一个它的使用方式。 整体思路:在xml文件中定义三个button控件,并分别设置它们的点击事件,在第一个点击事件中实例化一个AlertDialog.Builder对象,并设置每一个item的点击事件,在第二个和第三个点击事件中分别实例化一个AlertDialog.Builder对象,并设置单选和多选item的点击

luoshiwutai的博客 464

6-1.Android 对话框之基础对话框(普通、单选、多选、列表)

对话框(Dialog)是一种常用的 UI 组件,它主要用于显示信息、接收用户操作反馈。其中,基础对话框是 Android 中最简单的对话框,而后是进度对话框、自定义对话框等

weixin_52173250的博客 2605

显示选择省份的三种列表对话框-列表对话框,单选列表对话框,多选列表对话框

简单列表对话框通过AlertDialog.Builder类的setItems方法可以创建简单列表对话框,这种对话框相当于ListView控件放在了对话框中,然后在ListView中添加若干简单的文本。setItems方法的定义如下: public Builder setItems( int itemsId, final OnClickListener listener); public Buil

chengyangyy的专栏 1985

Android——多选列表对话框

说明:setMultiChoiceItems中的参数:selected是默认的对应的选中状态。当你选择时,系统会自动帮你把selected中的值做相应改变,所以在确定按钮中可以得到所有的选择状态。其他和单选一样。 button.setOnClickListener(new View.OnClickListener() { @Override publ...

qq_41430142的博客 2090

android 显示多选列表对话框

        public class MultiChoiceItemsTest extends Activity implements OnClickListener {     private String[] province = new String[] { "上海", "北京", "湖南", "湖北", "海南" };     private Button btnMu...

biandroid的专栏 455

Android AlertDialog 多选列表对话框练习

public class CheckedAlert extends AppCompatActivity { //多选列表对话框 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_checked_alert); final

weixin_46507557的博客 451

Android 使用原生列表对话框Dialog(单选、多选)

如果公司不是特殊要求,尽量还是使用系统原生的控件,维持一个好的生态,而不是闭着眼睛抄iOS效果。 直接上代码: import android.os.Bundle; import android.view.View; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; public class DialogDemo.

GeofferySun的专栏 1295

AlertDialog创建6种对话框的用法 (对话框,单选对话框,多选对话框,列表对话框,自定义对话框,退出对话框)

实例如图: acticity.xml布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.a

九年义务教育的残次品” 1053

android dialog —— 多选列表对话框

和单选列表对话框相似,这里需要通过setMultiChoiceItems将array.xml中的数据添加进去。 当单击列表项时会产生Click事件,这里用到的监听器是DialogInterface.OnMultiChoiceClickListener,具体实现如下: 第一步: 添加res/values/array.xml的数据 [xhtml] view plaincopyp

Kay的记录 1383

Android单选、多选列表的对话框

1、创建带单选项列表的对话框 下面代码将打开一个选项列表对话框: final String[] items = {"java", ".net", "php"}; new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("选择语言") .setItems(items, new DialogInterface.O

壹口尘埃 6978
上一篇: android 显示多选列表对话框
下一篇: 亲,画圆哦~~~
biandroid
博客等级 码龄15年 3粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值