二级列表

二级列表首先需要     一个组的集合       其次还需要一个子集合

    List<String> group;           //组列表

    List<List<String>> child;     //子列表
    ContactsInfoAdapter adapter;  //数据适配器

    private ExpandableListView listView;


     /**
     * 初始化组、子列表数据
     */
    private void initializeData(){
        group = new ArrayList<String>();
        child = new ArrayList<List<String>>();
        addInfo("Andy",new String[]{"male","138123***","GuangZhou"});
        addInfo("Fairy",new String[]{"female","138123***","GuangZhou"});
        addInfo("Jerry",new String[]{"male","138123***","ShenZhen"});
        addInfo("Tom",new String[]{"female","138123***","ShangHai"});
        addInfo("Bill",new String[]{"male","138231***","ZhanJiang"});
    }
    /**
     * 模拟给组、子列表添加数据
     * @param g-group
     * @param c-child
     */
    private void addInfo(String g,String[] c){
        group.add(g);
        List<String> childitem = new ArrayList<String>();
        for(int i=0;i<c.length;i++){
            childitem.add(c[i]);
        }
        child.add(childitem);
    }

、、、、、、适配器s

class ContactsInfoAdapter extends BaseExpandableListAdapter {
        @Override
        public int getGroupCount() {
            return group.size();
        }
        @Override
        public int getChildrenCount(int i) {
            return child.size();
        }
        @Override
        public Object getGroup(int i) {
            return group.get(i);
        }
        @Override
        public Object getChild(int i, int i1) {
            return child.get(i).get(i1);
        }
        @Override
        public long getGroupId(int i) {
            return i;
        }
        @Override
        public long getChildId(int i, int i1) {
            return i1;
        }
        @Override
        public boolean hasStableIds() {
            return false;
        }
        @Override
        public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
            TextView text=null;
            if (view==null){
                text=new TextView(MainActivity.this);
            }else {
                text= (TextView) view;
                text.setText(group.get(i));
                text.setTextSize(20);
                text.setPadding(36,10,0,10);//设置text的位置
            }
            return text;
        }
        @Override
        public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
            TextView text=null;
            if (view==null){
                text=new TextView(MainActivity.this);
            }else {
                text= (TextView) view;
                text.setText(child.get(i).get(i1));
                text.setTextSize(20);
                text.setPadding(72,10,0,10);
            }
            return text;
        }

        // 返回的必须为true       组的集合可以选择     查看子列表

       @Override
        public boolean isChildSelectable(int i, int i1) {
            return true;
        }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android中,城市二级列表联动是指根据用户在一级列表中所选中的省份,动态显示对应的二级子列表中的城市。这样的功能在很多应用中都会用到,比如选择所在城市、选择配送地址等。 要实现城市二级列表联动,首先我们需要准备城市数据。可以通过使用城市数据库或者本地存储文件的方式来获取城市数据,包括省和市的名称。根据这些数据,我们可以构建一个二维的数据结构,使得每一个省份对应一个城市列表。 接下来,在Android中可以将一级列表使用RecyclerView或者ListView来展示,通过适配器将省份数据绑定到列表上。当用户点击某个省份时,可以通过监听点击事件获取到省份的位置信息,根据位置信息获取对应的城市列表数据。 然后,我们可以将二级城市列表数据展示在另一个RecyclerView或者ListView上。同样,需要使用适配器将城市数据绑定到二级列表上。通过刷新适配器的方式实现二级列表的动态更新。 最后,我们还需要处理联动的逻辑。当用户点击一级列表的省份时,我们需要根据省份的位置信息获取对应的城市列表数据,并将城市列表数据绑定到二级列表的适配器上。这样,在界面上就会实现二级列表的联动效果。 在实现过程中需要考虑的一些问题有:如何获取并加载城市数据、如何处理列表的点击事件、如何实现二级列表的动态更新等。总之,通过使用RecyclerView或者ListView以及相应的适配器,我们可以比较容易地实现Android城市二级列表联动的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值