美文网首页
鸿蒙第8课列表容器( 聊天表的方法)(1)

鸿蒙第8课列表容器( 聊天表的方法)(1)

作者: 游私塾白书生 | 来源:发表于2022-05-30 13:54 被阅读0次

    1.建立列表子项模板文本

    2.适应列表容器的模板

    3.新建个包,并新建立个列表容器的类

    package com.text1.myhealth.pojo;

    //对象类工具包  列表子项工具类

    public class Item {

    private StringtextValue;

    // 空参

        public Item() {

    }

    //有参

        public Item(String textValue) {

    this.textValue = textValue;

        }

    //gte和set

        public StringgetTextValue() {

    return textValue;

        }

    public void setTextValue(String textValue) {

    this.textValue = textValue;

        }

    }

    4.封装一个通用大的列表容器的适配器的方法类

    public class ItemProviderextends BaseItemProvider {

    //        集合装所有Item对L

        private ArrayListlist;

        //页面对象

        private AbstractListslice;

    //    有参构造

        public ItemProvider(ArrayList list, AbstractList slice) {

    this.list = list;

            this.slice = slice;

        }

    //总数据有多少个  多少个item

        @Override

        public int getCount() {

    return list.size();

        }

    //角标索引

    //    数据角标返回数据

        @Override

        public ObjectgetItem(int i) {

    return list.get(i);

        }

    //    返回某一项的id  基本没啥用

        @Override

        public long getItemId(int i) {

    return 0;

        }

    //返回item中要加载的对象

        @Override

        public ComponentgetComponent(int i, Component component, ComponentContainer componentContainer) {

    //      获取到加载页面

            DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance((Context)slice)

    .parse(ResourceTable.Layout_item, null, false);

    //        获取每一个item里面的数据

            Item item =list.get(i);

    //        把数据加载到布局里面Text组件中去

            Text text1 = (Text) dl.findComponentById(ResourceTable.Id_itemText1);

            Text text2 = (Text) dl.findComponentById(ResourceTable.Id_itemText2);

            Image image=(Image) dl.findComponentById(ResourceTable.Id_itemImg);

            //  找到文本和图片

            text1.setText(item.getTextValue1());

            text2.setText(item.getTextValue2());

            image.setImageAndDecodeBounds(item.getImgSrc());

    //    返回出来

            return dl;

        }

    }

    5.在主页面引入列表容器适配器对象类

    public class MainAbilitySliceextends AbilitySlice {

    @Override

        public void onStart(Intent intent) {

    super.onStart(intent);

            super.setUIContent(ResourceTable.Layout_ability_main);

            //  找到ListContainer

            ListComponent listComponent=( ListComponent)findComponentById(ResourceTable.

    Id_listcomponent);

            ArrayListlist=new ArrayList<>();

    for (int i=0;i<=100;i++){

    list.add(new Item("组件一"+i));

    }

    //        构造适配器

            ltemProvider ltemProvider=new ltemProvider(list,this);

    //把适配器交给列表容器组件

    listComponent.setProvider(itemprovider);

        }

    相关文章

      网友评论

          本文标题:鸿蒙第8课列表容器( 聊天表的方法)(1)

          本文链接:https://www.haomeiwen.com/subject/soedprtx.html