首页 > 其他分享 >Android 多选下拉框的简单实现

Android 多选下拉框的简单实现

时间:2023-09-25 14:37:41浏览次数:28  
标签:多选 list map2 map3 map1 put new Android 下拉框

1、布局文件(activity_dropdown.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".DropDownActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="20dp">

    <EditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:focusable="false"
        />
</RelativeLayout>

2、Activity文件(DropDownActivity)

public class DropDownActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dropdown);

        List<Map> list = new ArrayList();
        Map map1 = new HashMap();
        map1.put("hobbies","电影");
        map1.put("name","张三");
        map1.put("id","1");
        list.add(map1);
        Map map2 = new HashMap();
        map2.put("hobbies","游戏");
        map2.put("name","李四");
        map2.put("id","2");
        list.add(map2);
        Map map3 = new HashMap();
        map3.put("hobbies","运动");
        map3.put("name","王五");
        map3.put("id","3");
        list.add(map3);

        //下拉项选中状态
        final boolean[] selected = new boolean[list.size()];
        //下拉框数据源
        final String[] str = new String[list.size()];
        //下拉项ID
        final int[] id = new int[list.size()];
        for(int i=0;i<list.size();i++){
            str[i] = list.get(i).get("hobbies").toString();
            //id[i] = (int)list.get(i).get("id");
            id[i] = Integer.parseInt(list.get(i).get("id").toString());
            selected[i] = false;
        }
       final EditText edit = findViewById(R.id.edit);
        edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                checkboxEdit(edit,selected,str,id);
            }
        });

    }

    private void checkboxEdit(final EditText edit, final boolean[] selected,final String[] str,final int[] id){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("兴趣爱好");
        DialogInterface.OnMultiChoiceClickListener multiChoiceClickListener = new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                selected[which] = isChecked;
            }
        };
        builder.setMultiChoiceItems(str,selected,multiChoiceClickListener);
        DialogInterface.OnClickListener clickListener = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String selectStr = "";
                String ids = "";
                for(int i=0;i< selected.length;i++){
                    if(selected[i]){
                        if(TextUtils.isEmpty(selectStr)){
                            selectStr = selectStr + str[i];
                            ids = ids+id[i];
                        }else{
                            selectStr = selectStr +","+ str[i];
                            ids= ids +","+id[i];
                        }
                    }
                }
                edit.setText(selectStr);
                Toast.makeText(DropDownActivity.this,ids,Toast.LENGTH_SHORT).show();
            }
        };
        builder.setCancelable(false);
        builder.setNegativeButton("取消",null);
        builder.setPositiveButton("确定",clickListener);
        AlertDialog dialog = builder.create();
        dialog.show();
    }

}

3、运行效果

 

 参考网址:

https://blog.csdn.net/Qxnedy/article/details/127637451

标签:多选,list,map2,map3,map1,put,new,Android,下拉框
From: https://www.cnblogs.com/xielong/p/17727852.html

相关文章

  • android驱动模块实现文件重定位
    编写驱动模块进行sys_call_tablehook替换sys_open和sys_openat系统调用为自定义函数,需要注意sys_call_table是只读的,修改前需要前修改其内存属性为可写。直接修改内核源码,并编写驱动模块实现filterfunction进行过滤。sys_call_tablehook只能对系统调用函数进行hook。而第......
  • R3300L, Q7 ATV Android9固件
    R3300L,Q7ATVAndroid9固件固件来源https://www.znds.com/tv-1239603-1-1.html之前在恩山上发布过1080p安卓6固件https://www.right.com.cn/forum/thread-1761250-1-1.html,这个固件的不足之处就是没有GoogleServiceFramework,只能通过SmartYoutube之类的第三方APP......
  • Android 9关机流程
    一、整体关机流程framework->init->kernel二、关机流程(代码)本文基于Android9,梳理下正常power键触发的关机流程。涉及的相关代码路径如下://frameworkframeworks\base\core\res\res\values\config.xmlframeworks\base\services\core\java\com\android\server\policy\LegacyG......
  • 过来Android码农提醒,不要有面试就去,可能会白跑一趟
    前言亲身经历!!面试失败总结(它失败,我也不想要的那种)正值毕业季,毕业生开始走向求职之路,大量求职者随之而来。再加上现在正值金九银十招聘的火热阶段。找工作的都知道,工作成功的最后一步是面试,所以很多求职者都选择有面试就去,这是不可取的。就拿本人最近的面试来说,通勤一个小时,明明之前......
  • Android程序员35岁的职业出路:寻找新的舞台
    前言转眼间已经到了奔四的年纪,岁月匆匆,时光荏苒,转眼间已经在Android行业干了8年,当前项目组也陆陆续续进入了不少00后,80后已经不见踪影,90后正在逐渐淡出,而我,也要开始迎接程序员35岁这个坎,心里还是想要继续做技术这条路,但是也给自己思索了一些转行之路,在此跟大家交流交流。为什么35岁......
  • Android DataBinding——导入以及生成的绑定类
    导入DataBinding库提供了导入、变量和include等功能。导入可以方便在引用布局文件中引用类;变量允许您描述可在绑定表达式中使用的属性;Includes允许您在整个应用程序中重用复杂的布局。ImportsImports允许您轻松地在布局文件中的引用类,就像在代码中一样。data元素内部可以使用零个或......
  • Android Failed to resolve: com.github.PhilJay:MPAndroidChart:v3.1.0
    2022.3.1版本修改settings.gradledependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{maven{url"https://jitpack.io"}//Addthisrepositoryjcenter()//orotherrep......
  • 熬过月余终见offer,一份Android面经
    前言最近我一直在牛客刷帖子看到好多对于现在IT环境的负面消息,自己也是找了一个多月Offer一个都没有,又看到这些感觉面试的勇气又少了…这种状态我根本就不知道任何转变,真的是投简历都不想投!就在这样的状态下,朋友说他那边内推有消息了,说待会HR会和我联系。怎么说了,并没有太多惊喜,因......
  • 干货:《Android 性能优化实战篇》带你杀穿金九银十
    近年来,由于疫情和互联网行业寒冬的影响,Android开发领域的竞争变得更加激烈。各大公司的业务线收缩和裁员成为了常规操作,导致职场环境日益严峻。作为一个螺丝钉,我们想要卷出重围,性能优化必须了解一下!本文将梳理Android性能优化的知识模块,帮助初学者了解应该从哪些方面入手学习性能优......
  • 金九银十Android面试该怎么有效的回答,看完这篇文章就懂了
    今年的严寒使得许多职场人的求职时间变长,以往火热的金三银四不再,金九银十九承载着广大程序员的希望。但是在这个特殊情况下,竞争压力也会增大,各大企业对于求职者的要求也随之增高。很多小伙伴都面临着这样的情况:千辛万苦拿到面试机会,却因各种原因翻车。“在面试的时候不能将自己的真......